Bonjour, je ne comprend pas comment fonctionne la boucle for dans ces deux exemples...
Dans l'exemple 1 la variable element n'est pas une référence n'est-ce pas ? donc la propriété de cette variable est transmise à la variable le_plus_grand dans le if ? Donc d'après moi la valeur de retour n'est pas une référence bien que dans la signature de la fonction on a défini &T comme valeur de retour...
Dans l'exemple 2 la variable element est une référence et donc la propriété de cette variable est transmise à la variable le_plus_grand dans le if ?
pfff je m'emmele les pinceaux avec ces histoires de réference / pas références
exemple 1 :
exemple 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 fn le_plus_grand<T: PartialOrd>(liste: &[T]) -> &T { let mut le_plus_grand = &liste[0]; for element in liste { if element > le_plus_grand { le_plus_grand = element; } } le_plus_grand }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 fn le_plus_grand<T: PartialOrd + Copy>(liste: &[T]) -> T { let mut le_plus_grand = liste[0]; for &element in liste { if element > le_plus_grand { le_plus_grand = element; } } le_plus_grand }
Partager