Question à propos des références
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 :
Code:
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
} |
exemple 2 :
Code:
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
} |