0Pricing
Learn Rust Coding · Lezione

Creare e riempire vettori

Costruisca Vec e aggiunga elementi con push.

Creare e riempire vettori è una lezione Learn Rust Coding gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn Rust Coding, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn Rust Coding include 4 lezioni in totale.

Che cos'è un vettore?

Un vettore è un elenco espandibile di valori dello stesso tipo. A differenza di un array di dimensione fissa, un vettore può ridursi o espandersi durante l'esecuzione del programma.

In Rust il tipo si scrive Vec<T>, dove T è il tipo degli elementi contenuti, come Vec<i32> per gli interi.

Un vettore vuoto

Potete creare un vettore nuovo e vuoto con Vec::new(). Poiché non contiene ancora valori, Rust non può dedurre il tipo degli elementi, quindi di solito dovete specificarlo.

Qui diciamo a Rust che questo vettore conterrà interi i32.

fn main() {
    let v: Vec<i32> = Vec::new();
    println!("len = {}", v.len());
}

La macro vec!

Il modo più rapido per creare un vettore con valori iniziali è la macro vec!. Elencate i valori tra parentesi quadre.

Rust deduce il tipo degli elementi dai valori, quindi qui non è necessaria alcuna annotazione.

fn main() {
    let nums = vec![10, 20, 30];
    println!("{:?}", nums);
}

Stampare un vettore

Per stampare un vettore intero si usa il formattatore di debug {:?}, non il normale {}. La modalità di debug mostra i valori tra parentesi quadre.

Usate {:#?} per ottenere un formato più leggibile e disposto su più righe quando il vettore è grande.

fn main() {
    let names = vec!["Ann", "Bo", "Cy"];
    println!("{:?}", names);
}

Aggiungere valori

Per aggiungere un valore alla fine di un vettore, chiamate push. Il vettore deve essere dichiarato mut, perché l'operazione lo modifica.

Ogni chiamata a push aggiunge un elemento e aumenta di uno la lunghezza.

fn main() {
    let mut v = Vec::new();
    v.push(1);
    v.push(2);
    v.push(3);
    println!("{:?}", v);
}

Tipo dedotto dal primo push

Quando iniziate con Vec::new() senza annotazione, Rust aspetta il primo push per conoscere il tipo degli elementi.

Qui sotto, l'aggiunta di 3.5 dice a Rust che si tratta di un Vec<f64>. Tutti i valori successivi devono avere lo stesso tipo.

fn main() {
    let mut prices = Vec::new();
    prices.push(3.5);
    prices.push(9.0);
    println!("{:?}", prices);
}

Riempire con ripetizioni

La macro vec! può ripetere un valore. Scrivete vec![value; count] per creare un vettore contenente quel valore ripetuto count volte.

È utile per preparare un elenco di zeri o di valori predefiniti.

fn main() {
    let zeros = vec![0; 5];
    println!("{:?}", zeros);
}

Riempire in un ciclo

Potete riempire un vettore aggiungendo elementi all'interno di un ciclo. Qui aggiungiamo i quadrati dei numeri da 1 a 4.

Iniziare con un vettore vuoto e aggiungere i valori man mano è un modello comune quando i valori vengono calcolati.

fn main() {
    let mut squares = Vec::new();
    for n in 1..=4 {
        squares.push(n * n);
    }
    println!("{:?}", squares);
}

Capacità e lunghezza

La lunghezza indica quanti elementi contiene attualmente un vettore. La capacità indica quanto spazio è stato riservato prima che sia necessario aumentare la memoria.

Se sapete approssimativamente quanti elementi aggiungerete, Vec::with_capacity(n) riserva lo spazio in anticipo ed evita riallocazioni ripetute.

fn main() {
    let mut v = Vec::with_capacity(10);
    v.push(1);
    println!("len {}, cap {}", v.len(), v.capacity());
}

Da un array

Potete trasformare un array in un vettore. Un modo semplice è usare .to_vec(), che copia gli elementi dell'array in un nuovo vettore di proprietà.

È utile quando iniziate con dati fissi, ma in seguito avete bisogno di poterli espandere.

fn main() {
    let arr = [1, 2, 3];
    let v = arr.to_vec();
    println!("{:?}", v);
}

Verificare se è vuoto

Usate is_empty() per verificare se un vettore non contiene elementi. Restituisce un bool ed è più chiaro che confrontare la lunghezza con zero.

È un buon controllo preliminare prima di leggere il primo elemento.

fn main() {
    let v: Vec<i32> = Vec::new();
    if v.is_empty() {
        println!("nothing here yet");
    }
}

Verifica rapida

Verificate la vostra comprensione della creazione e del riempimento dei vettori.

Riepilogo

Avete imparato a creare vettori con Vec::new() e la macro vec!, e a riempirli usando push, ripetizioni, cicli e to_vec().

Avete anche visto la differenza tra lunghezza e capacità e come verificare se un vettore è vuoto. Ora imparerete a leggere i valori di un vettore e a scorrerli.

Domande Frequenti

La lezione «Creare e riempire vettori» è gratuita?

Sì — il testo completo di «Creare e riempire vettori» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn Rust Coding, passa a CoddyKit PRO. Il corso Learn Rust Coding include 4 lezioni in totale.

Cosa imparerò in «Creare e riempire vettori»?

Costruisca Vec e aggiunga elementi con push. Eserciti Learn Rust Coding con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn Rust Coding?

Non è richiesta alcuna esperienza precedente. Learn Rust Coding su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Creare e riempire vettori»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn Rust Coding?

Sì. Ogni lezione Learn Rust Coding include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creare e riempire vettori
  2. Indicizzazione e iterazione
  3. Aumentare e ridurre le dimensioni
  4. Vettori di struct
← Torna a Learn Rust Coding