Avatar ·

Wie erstelle ich eine Funktion mit variabler Anzahl von Argumenten in Rust?

Hallo zusammen! Ich habe gerade angefangen, Rust nach C++ und Python zu lernen, und bin auf ein Problem gestoßen. In C++ kann ich eine Funktion mit variabler Anzahl von Argumenten über `...` (variadic templates) schreiben, und in Python über `*args`. Zum Beispiel möchte ich eine Funktion `sum_all` erstellen, die eine beliebige Anzahl von ganzen Zahlen addiert: ```rust // Wie mache ich das in Rust? fn sum_all(...) -> i32 { // etwas hier } fn main() { println!("{}", sum_all(1, 2, 3)); // 6 println!("{}", sum_all(10, 20, 30, 40)); // 100 } ``` Ich habe gelesen, dass Rust keine klassischen variadic functions wie in C unterstützt. Aber gibt es macros? Oder kann ich slices verwenden? Ich habe versucht, einen vector zu übergeben, aber das ist unpraktisch – jedes Mal muss ich `vec!` erstellen. Gibt es einen idiomatischen Weg, das in Rust zu machen? Ich brauche genau die Lösung.