Rust

Collezioni

Vec<T>, String, HashMap, HashSet, iteratori, collect, ownership con le collezioni

20 domande da colloquio·
Junior
1

Quale metodo consente di aggiungere un elemento alla fine di un Vec<T>?

Risposta

Il metodo push() aggiunge un elemento alla fine del vettore, aumentandone la dimensione di 1. Questa operazione ha una complessità ammortizzata O(1) perché il vettore potrebbe dover riallocare la memoria se la capacità viene superata. Per aggiungere più elementi, è possibile usare extend() o append() a seconda delle esigenze.

2

Qual è la differenza principale tra String e &str in Rust?

Risposta

String è un tipo posseduto (owned) memorizzato nell'heap, mutabile e ridimensionabile. &str è un riferimento immutabile a una sequenza UTF-8, spesso chiamato 'string slice'. String possiede i propri dati e può essere modificato, mentre &str prende in prestito dati esistenti senza possederli. Questa distinzione è fondamentale per la gestione della memoria in Rust.

3

Come creare un nuovo Vec<i32> vuoto in Rust?

Risposta

Vec::new() crea un vettore vuoto senza allocazione iniziale. Anche la macro vec![] può creare un vettore vuoto, ma Vec::new() è il metodo esplicito standard. Il tipo generico può essere dedotto o specificato esplicitamente con la sintassi turbofish Vec::<i32>::new() o tramite annotazione di tipo.

4

Cosa restituisce il metodo get() su un Vec<T>?

5

Quale struttura dati usare per associare chiavi a valori con accesso O(1) in media?

+17 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