Aller au contenu principal
U/
Idiomes
rust

Gérer un Option<i32> avec match

Écrire la fonction premier_pair(v: &[i32]) -> Option<i32> qui retourne le premier entier pair d'une slice, ou None si aucun n'existe, et la démontrer avec match.

15 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

É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 boucle for : les deux approches sont valides.
  • Le type de retour doit être Option<i32> (pas Option<&i32>).
  • Utiliser un match explicite dans main (pas if let ni unwrap_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é
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.