Rust

Iterators & Closures

Iterator trait, iterator adapters (map, filter, fold), sintassi delle closure, move closures, Fn traits

22 domande da colloquio·
Mid-Level
1

Quale trait deve implementare un tipo per poter essere usato in un ciclo for in Rust?

Risposta

Il trait IntoIterator consente a un tipo di essere convertito in un iteratore. Il ciclo for chiama automaticamente into_iter() sull'espressione. Tipi come Vec, array e range implementano questo trait per impostazione predefinita, il che permette di iterarli direttamente con for.

2

Quale metodo del trait Iterator deve essere obbligatoriamente implementato?

Risposta

Il metodo next() è l'unico metodo richiesto del trait Iterator. Restituisce Option<Self::Item>, ovvero Some(item) se ci sono ancora elementi, oppure None quando l'iterazione è completa. Tutti gli altri metodi come map, filter o collect hanno implementazioni predefinite basate su next().

3

Qual è la differenza tra iter(), iter_mut() e into_iter() su un Vec<T>?

Risposta

iter() restituisce un iteratore su riferimenti immutabili (&T), iter_mut() su riferimenti mutabili (&mut T), e into_iter() consuma il Vec e restituisce gli elementi per valore (T). La scelta dipende dal fatto che si voglia leggere, modificare o prendere possesso degli elementi.

4

Cos'è un iteratore lazy in Rust e perché è importante?

5

Qual è la sintassi corretta per definire una closure che accetta due parametri i32 e ne restituisce la somma?

+19 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis