Avatar ·

¿Cómo crear una función con un número variable de argumentos en Rust?

¡Hola a todos! Acabo de empezar a aprender Rust después de C++ y Python, y me encontré con un problema. En C++ puedo escribir una función con un número variable de argumentos usando `...` (variadic templates), y en Python con `*args`. Por ejemplo, quiero crear una función `sum_all` que sume cualquier cantidad de números enteros: ```rust // ¿Cómo hago esto en Rust? fn sum_all(...) -> i32 { // algo aquí } fn main() { println!("{}", sum_all(1, 2, 3)); // 6 println!("{}", sum_all(10, 20, 30, 40)); // 100 } ``` He leído que Rust no soporta variadic functions clásicas como en C. ¿Pero hay macros? ¿O puedo usar slices? Intenté pasar un vector, pero es incómodo — cada vez hay que crear `vec!`. ¿Hay una forma idiomática de hacer esto en Rust? Necesito una solución para un número arbitrario de argumentos del mismo tipo (números enteros). ¡Agradecería un ejemplo detallado! P.D. Sé que para sumar existe `.sum()`, pero esto es solo un ejemplo — necesito entender.