Passare valori by reference in Rust

Mattepuffo's logo
Passare valori by reference in Rust

Passare valori by reference in Rust

Rust supporta il passaggio dei valori by reference nelle funzioni.

Cerchiamo prima di capire cosa si intende; quando passiamo un parametro by value, la funzione crea una copia della variabile.

Così facendo non tocchiamo mai l'originale.

Il passaggio by reference, invece, va a prendere la stessa locazione di memoria del valore passato; in soldoni vuol dire che andiamo ad agire sul valore originale.

Nulla è meglio di un esempio per capire bene:

fn main() {
    let mut numero = 50;
    println!("NUMERO INIZIALE: {}", numero);
    println!("CHIAMO LA FUNZIONE");
    up_numero_ref(&mut numero);
    println!("NUMERO INIZIALE: {}", numero);
}

fn up_numero_ref(num: &mut i32) {
    *num = 0;
}

Il risultato sarà questo:

NUMERO INIZIALE: 50
CHIAMO LA FUNZIONE
NUMERO INIZIALE: 0

Come vedete il numero iniziale è cambiato.

State attenti quando usate il passaggio by reference, perchè una delle maggiori cause di bug.

Enjoy!


Condividi

Commentami!