async
async fn fetch() -> String { "ok".into() }
result e option
fn load(ok: bool) -> Result<String, String> {
if ok { Ok("ok".into()) } else { Err("fail".into()) }
}
ownership
let name = String::from("samir");
let moved = name;
vec e hashmap
let mut tags = vec!["ai", "film"];
tags.push("photo");
esercizi
definisci una funzione async e chiamala.
async fn load() -> i32 { 42 }
// usa un runtime async per eseguire load()
panoramica
In questo capitolo su async lavoriamo su async, result e option, ownership, vec e hashmap 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 async in uno scenario reale
- capire e applicare result e option in uno scenario reale
- capire e applicare ownership in uno scenario reale
- capire e applicare vec e hashmap in uno scenario reale
scheda rapida
async fn fetch() -> String { "ok".into() }
adatta questo scheletro agli esempi della lezione.
tips
- gestisci sempre Result
- preferisci iterators
- usa cargo fmt
- separa moduli per dominio
- riduci mutabilità
- gestisci timeout e cancellazioni
tip: documenta ogni scelta architetturale.
mini progetto
implementa una funzione async base.
- scrivi async fn
- esegui con runtime
- stampa
output atteso: task completato.
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