Avatar ·

Como criar uma função com número variável de argumentos em Rust?

Olá a todos! Comecei a estudar Rust depois de C++ e Python, e me deparei com um problema. Em C++, posso escrever uma função com número variável de argumentos usando `...` (variadic templates), e em Python, usando `*args`. Por exemplo, quero criar uma função `sum_all` que soma qualquer quantidade de números inteiros: ```rust // Como faço isso em Rust? fn sum_all(...) -> i32 { // algo aqui } fn main() { println!("{}", sum_all(1, 2, 3)); // 6 println!("{}", sum_all(10, 20, 30, 40)); // 100 } ``` Li que Rust não suporta variadic functions clássicas como em C. Mas existem macros? Ou posso usar slices? Tentei passar um vector, mas é inconveniente — toda vez preciso criar `vec!`. Existe uma maneira idiomática de fazer isso em Rust? Preciso de uma solução para um número arbitrário de argumentos do mesmo tipo (números inteiros). Agradeço por um exemplo detalhado! P.S. Sei que para somar existe `.sum()`, mas isso é apenas um exemplo — preciso entender.