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!
rust reference
Commentami!