borrowing
let name = String::from("samir");
let view = &name;
println!("{}", view);
mutabilità
let mut count = 0;
count += 1;
result e option
fn load(ok: bool) -> Result<String, String> {
if ok { Ok("ok".into()) } else { Err("fail".into()) }
}
match
match s {
State::Draft => println!("draft"),
State::Published => println!("pub"),
}
esercizi
gestisci un Result e propaga l'errore.
fn load(ok: bool) -> Result<String, String> {
if ok { Ok("ok".into()) } else { Err("fail".into()) }
}
panoramica
In questo capitolo su borrowing lavoriamo su borrowing, mutabilità, result e option, match per creare micro-pattern riutilizzabili.
lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.
badge: rust essentials
obiettivi
- capire e applicare borrowing in uno scenario reale
- capire e applicare mutabilità in uno scenario reale
- capire e applicare result e option in uno scenario reale
- capire e applicare match in uno scenario reale
scheda rapida
let name = String::from("samir");
let view = &name;
println!("{}", view);
adatta questo scheletro agli esempi della lezione.
tips
- gestisci sempre Result
- preferisci iterators
- usa cargo fmt
- separa moduli per dominio
- riduci mutabilità
- mantieni borrowing leggibile
tip: documenta ogni scelta architetturale.
mini progetto
propaga errori con Result.
- crea Result
- usa ?
- gestisci
output atteso: error handling pulito.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale