traits
trait Render { fn render(&self) -> String; }
generics
fn first<T>(items: Vec<T>) -> Option<T> { items.into_iter().next() }
struct
struct Project { name: String, shots: u32 }
let p = Project { name: "Nova".into(), shots: 12 };
iterators
let out: Vec<i32> = (1..4).map(|x| x * 2).collect();
esercizi
crea una struct e usa vec per salvarla.
struct Item { id: i32, name: String }
let items = vec![Item { id: 1, name: "A".into() }];
println!("{}", items.len());
panoramica
In questo capitolo su traits e generics lavoriamo su traits, generics, struct, iterators 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 traits in uno scenario reale
- capire e applicare generics in uno scenario reale
- capire e applicare struct in uno scenario reale
- capire e applicare iterators in uno scenario reale
scheda rapida
trait Render { fn render(&self) -> String; }
adatta questo scheletro agli esempi della lezione.
tips
- gestisci sempre Result
- preferisci iterators
- usa cargo fmt
- separa moduli per dominio
- riduci mutabilità
- mantieni traits leggibile
tip: documenta ogni scelta architetturale.
mini progetto
crea un dataset con struct e vec.
- definisci struct
- crea vec
- stampa
output atteso: dataset inizializzato.
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