Bon cas pour un itérateur ici (find) #9

Open
opened 2022-01-13 15:04:36 +01:00 by darnuria · 3 comments
darnuria commented 2022-01-13 15:04:36 +01:00 (Migrated from code.up8.edu)

153 mattermost.rs

        Ok(channels) => {
            for channel in &channels {
                if channel.name == salon {
                    return channel.id.clone();
                }
            }

Il existe exactement ce que tu veux: (plutôt facile a coder si tu veux comprendre comment ça marche) https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.find

            match channels.iter().find(|channel| channel.name == salon) {
                Some(channel) => channel.id.clone(),
                None => panic!(
                    "{}",
                    erreur::message_erreur("Impossible de récupérer l'ID du salon renseigné: Pas présent dans la liste récupérée")
                ),
            }            

Sûrement moins clair du point de vue d'un L2. Mais du point de vue 5ans expérience on a tendance a apprécier les itérateurs car on sais direct ce que ça véhicule comme idée.

On peut surement aller plus loin avec d'autres itérateurs mais je voulais pas sortir un truc trop complexe.

153 mattermost.rs ```rust Ok(channels) => { for channel in &channels { if channel.name == salon { return channel.id.clone(); } } ``` Il existe exactement ce que tu veux: (plutôt facile a coder si tu veux comprendre comment ça marche) https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.find ```rust match channels.iter().find(|channel| channel.name == salon) { Some(channel) => channel.id.clone(), None => panic!( "{}", erreur::message_erreur("Impossible de récupérer l'ID du salon renseigné: Pas présent dans la liste récupérée") ), } ``` Sûrement moins clair du point de vue d'un L2. Mais du point de vue 5ans expérience on a tendance a apprécier les itérateurs car on sais direct ce que ça véhicule comme idée. On peut surement aller plus loin avec d'autres itérateurs mais je voulais pas sortir un truc trop complexe.
darnuria commented 2022-01-13 15:05:07 +01:00 (Migrated from code.up8.edu)

changed the description

changed the description
Anri commented 2022-01-13 16:23:46 +01:00 (Migrated from code.up8.edu)

Compris

Compris
darnuria commented 2022-01-28 11:50:07 +01:00 (Migrated from code.up8.edu)

Ça sera utile pour Ocaml en l3 si tu as un peu compris en plus vu que tu as beaucoup de HigherOrder Function en OCaml (et en C++ moderne) ;)

Ça sera utile pour Ocaml en l3 si tu as un peu compris en plus vu que tu as beaucoup de HigherOrder Function en OCaml (et en C++ moderne) ;)
This repo is archived. You cannot comment on issues.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Paris8/MatterBot#9
No description provided.