Menu
Coddy logo textTech

Accedere agli elementi di un vettore

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 10 di 66.

Una volta che hai un vettore con degli elementi, dovrai accedere ai singoli valori. Rust offre due approcci diversi per ottenere elementi da un vettore, ciascuno con i propri compromessi tra praticità e sicurezza.

Il primo metodo usa la sintassi degli indici con le parentesi quadre, in modo simile agli array:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // ottiene 10
let third = numbers[2]; // ottiene 30

Sebbene questa sintassi sia familiare e concisa, presenta un rischio significativo: se provi ad accedere a un indice che non esiste, il tuo programma andrà in panico e si bloccherà:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // Questo causerà un panic!

Il secondo metodo utilizza il metodo .get(), che fornisce un accesso sicuro:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // restituisce Some(10)
let invalid = numbers.get(5); // restituisce None

Il metodo .get() restituisce un Option - Some(value) se l'indice esiste oppure None se non esiste. Questo ti obbliga a gestire la possibilità che l'elemento possa non esistere, evitando arresti anomali e rendendo il tuo codice più robusto.

challenge icon

Sfida

Facile
Scrivi una funzione get_element_at che accetta un vettore numbers e un indice idx, e restituisce l'elemento in quell'indice usando un accesso sicuro.

Usa il metodo .get() per accedere all'elemento in modo sicuro. Se l'indice esiste, restituisci il valore. Se l'indice non esiste, restituisci -1 come valore predefinito.

Parametri:

  • numbers (Vec<i32>): Il vettore a cui accedere
  • idx (i32): L'indice da recuperare

Restituisce: L'elemento all'indice specificato, oppure -1 se l'indice non esiste (i32)

Provalo tu

fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
    // Write code here
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online