Défi
Énoncé
Écrire la fonction premier_pair(v: &[i32]) -> Option<i32> qui parcourt la slice v et retourne Some(x) pour le premier élément pair x rencontré, ou None si aucun élément pair n'existe. Dans main, appeler la fonction avec deux slices différentes et traiter le résultat avec un match qui affiche soit "Premier pair : <valeur>", soit "Aucun pair trouvé".
Contraintes
- Compilé avec
rustc --edition=2021 main.rs. - Utiliser
iter().find()ou une bouclefor: les deux approches sont valides. - Le type de retour doit être
Option<i32>(pasOption<&i32>). - Utiliser un
matchexplicite dansmain(pasif letniunwrap_or). - Seule la bibliothèque standard est autorisée.
Exemple
fn premier_pair(v: &[i32]) -> Option<i32> {
v.iter().find(|&&x| x % 2 == 0).copied()
}
fn main() {
match premier_pair(&[1, 3, 5, 4, 7]) {
Some(n) => println!("Premier pair : {}", n),
None => println!("Aucun pair trouvé"),
}
match premier_pair(&[1, 3, 5, 7]) {
Some(n) => println!("Premier pair : {}", n),
None => println!("Aucun pair trouvé"),
}
}
Sortie :
Premier pair : 4
Aucun pair trouvé