Wie sammle ich Elemente eines Iterators in ein Array fester Größe in Rust?
Hallo zusammen! Ich habe kürzlich angefangen, Rust zu lernen, und bin auf ein Problem gestoßen, das sehr einfach erscheint, aber ich finde keine richtige Lösung.
Ich habe einen Iterator, der eine Sequenz von Zahlen zurückgibt. Ich möchte alle diese Zahlen in einem Array [i32; N] sammeln, wobei N zur Kompilierzeit bekannt ist. Zum Beispiel schreibe ich eine Funktion, die einen Slice von Zahlen nimmt und ein Array aus den ersten 5 Elementen zurückgibt:
fn first_five(data: &[i32]) -> [i32; 5] {
data.iter().take(5).collect() // funktioniert nicht!
}
Der Compiler gibt einen Fehler aus: the trait bound `[i32; 5]: FromIterator<&i32>` is not satisfied. Ich verstehe, dass collect() mit Collections wie Vec funktioniert, aber wie bringe ich es dazu, mit Arrays zu arbeiten?
Ich habe versucht,
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs