Avatar ·

Comment créer une fonction avec un nombre variable d'arguments en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust après C++ et Python, et j'ai rencontré un problème. En C++, je peux écrire une fonction avec un nombre variable d'arguments via `...` (variadic templates), et en Python via `*args`. Par exemple, je veux créer une fonction `sum_all` qui additionne un nombre quelconque d'entiers : ```rust // Comment puis-je faire cela en Rust ? fn sum_all(...) -> i32 { // quelque chose ici } fn main() { println!("{}", sum_all(1, 2, 3)); // 6 println!("{}", sum_all(10, 20, 30, 40)); // 100 } ``` J'ai lu que Rust ne supporte pas les variadic functions classiques comme en C. Mais y a-t-il des macros ? Ou puis-je utiliser des slices ? J'ai essayé de passer un vecteur, mais ce n'est pas pratique — il faut créer `vec!` à chaque fois. Existe-t-il une manière idiomatique de faire cela en Rust ? J'ai besoin d'une solution pour un nombre arbitraire d'arguments du même type (entiers). Je serais reconnaissant pour un exemple détaillé ! P.S. Je sais que pour la somme il y a `.sum()`, mais ce n'est qu'un exemple — j'ai besoin de comprendre.