Types avancés
Orestis Malaspinas
Tuples
Permet de regrouper plusieurs valeurs avec différents types dans un type composé.
fn main() {
let tuple: (f64, char, usize) = (1.0, 'c', 18usize); // type pas nécessaire
println!("Un tuple {:?}", tuple); // affichage Debug
let sans_type_tuple = (666, "abcdef"); // type inféré
println!("Un autre tuple {:?}", sans_type_tuple); // affichage Debug
}
On peut destructurer un n-uplet avec la notation
let (a,b,c,...) = tuple;
Les champs sont accessibles avec la notation
let a = tuple.0; let b = tuple.1;
fn main() {
let tuple = (1.0, 'c', 18usize);
let (fl, ch, us) = tuple;
println!("Le tuple destructuré: {}, {}, {}", fl, ch, us);
let fl_ind = tuple.0;
let ch_ind = tuple.1;
let us_ind = tuple.2;
println!("Le tuple re-destructuré: {}, {}, {}", fl_ind, ch_ind, us_ind);
}
Array
Vec
Struct
Enum