Rust

Iterators & Closures

Iterator-Trait, Iterator-Adapter (map, filter, fold), Closure-Syntax, move Closures, Fn-Traits

22 Interview-Fragen·
Mid-Level
1

Welches Trait muss ein Typ implementieren, um in einer for-Schleife in Rust verwendet werden zu können?

Antwort

Das IntoIterator-Trait ermöglicht es, einen Typ in einen Iterator umzuwandeln. Die for-Schleife ruft automatisch into_iter() auf dem Ausdruck auf. Typen wie Vec, Arrays und Ranges implementieren dieses Trait standardmäßig, wodurch man sie direkt mit for durchlaufen kann.

2

Welche Methode des Iterator-Traits muss zwingend implementiert werden?

Antwort

Die next()-Methode ist die einzige erforderliche Methode des Iterator-Traits. Sie gibt Option<Self::Item> zurück, entweder Some(item), wenn noch Elemente vorhanden sind, oder None, wenn die Iteration abgeschlossen ist. Alle anderen Methoden wie map, filter oder collect haben Standardimplementierungen, die auf next() basieren.

3

Was ist der Unterschied zwischen iter(), iter_mut() und into_iter() bei einem Vec<T>?

Antwort

iter() gibt einen Iterator über unveränderliche Referenzen (&T) zurück, iter_mut() über veränderliche Referenzen (&mut T), und into_iter() konsumiert den Vec und gibt die Elemente als Wert (T) zurück. Die Wahl hängt davon ab, ob man die Elemente lesen, ändern oder deren Besitz übernehmen möchte.

4

Was ist ein lazy Iterator in Rust und warum ist das wichtig?

5

Was ist die korrekte Syntax, um eine Closure zu definieren, die zwei i32-Parameter nimmt und deren Summe zurückgibt?

+19 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten