Avatar ·

Wie schreibe ich eine Funktion in Rust, die einen Iterator akzeptiert?

Hallo zusammen! Ich bin neu in Rust und versuche, eine Funktion zu schreiben, die eine Sequenz von Zahlen aus verschiedenen Quellen verarbeiten kann: aus einem Vektor, aus einem Bereich, aus einer Datei usw. In anderen Sprachen würde ich einfach ein Array oder eine Liste übergeben, aber in Rust, wie ich verstanden habe, ist es üblich, Iteratoren zu verwenden. Das Problem ist, dass ich nicht verstehe, wie ich den Parametertyp korrekt deklarieren soll. Ich habe versucht, so etwas zu schreiben: ```rust fn sum_squares(items: Iterator) -> i32 { items.map(|x| x * x).sum() } fn main() { let vec = vec![1, 2, 3, 4, 5]; println!("{}", sum_squares(vec.iter())); } ``` Aber der Compiler beschwert sich: "error[E0277]: the size for values of type `dyn Iterator` cannot be known at compilation time". Ich verstehe, dass das irgendwie mit Traits und Größen im Stapel zusammenhängt.