Rust

Iterators & Closures

Iterator trait, iterator adapters (map, filter, fold), closure-syntax, move closures, Fn traits

22 gespreksvragen·
Mid-Level
1

Welk trait moet een type implementeren om bruikbaar te zijn in een for-lus in Rust?

Antwoord

Het IntoIterator-trait maakt het mogelijk een type om te zetten in een iterator. De for-lus roept automatisch into_iter() aan op de expressie. Types zoals Vec, arrays en ranges implementeren dit trait standaard, waardoor je er direct met for overheen kunt itereren.

2

Welke methode van het Iterator-trait moet verplicht worden geïmplementeerd?

Antwoord

De methode next() is de enige vereiste methode van het Iterator-trait. Ze retourneert Option<Self::Item>, ofwel Some(item) als er nog elementen zijn, of None wanneer de iteratie voltooid is. Alle andere methoden zoals map, filter of collect hebben standaardimplementaties op basis van next().

3

Wat is het verschil tussen iter(), iter_mut() en into_iter() op een Vec<T>?

Antwoord

iter() retourneert een iterator over onveranderlijke referenties (&T), iter_mut() over veranderlijke referenties (&mut T), en into_iter() consumeert de Vec en retourneert de elementen op waarde (T). De keuze hangt af van of je de elementen wilt lezen, wijzigen of er eigenaarschap van wilt nemen.

4

Wat is een lazy iterator in Rust en waarom is het belangrijk?

5

Wat is de juiste syntax om een closure te definiëren die twee i32-parameters neemt en hun som retourneert?

+19 gespreksvragen

Beheers Rust voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis