pas sûr que ça soit un réel plus en pratique par rapport au classique 'tu dois définir cette fonction et les autres se basent dessus' mais bon..
C'est un réel plus pour des questions de performances. Par exemple, dans la class Ord, on peut définir soit la fonction <= soit la fonction compare qui retourne soit LT, soit EQ, soit GT. Sachant que si on décide l'implémenter seulement <=, utiliser compare a b va nécessiter de calculer à la fois a <= b et b <= a. Et réciproquement, probablement que la seule implémentation de compare fournit une implémentation sous optimale de <=, parce que compare calcule plus de choses que <=
Et parfois, il y a une des fonctions du cycle qui est plus naturelle à définir.
[^] # Re: Les traits
Posté par Zylabon . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 5.
C'est un réel plus pour des questions de performances. Par exemple, dans la class Ord, on peut définir soit la fonction <= soit la fonction
comparequi retourne soit LT, soit EQ, soit GT. Sachant que si on décide l'implémenter seulement <=, utilisercompare a bva nécessiter de calculer à la foisa <= betb <= a. Et réciproquement, probablement que la seule implémentation decomparefournit une implémentation sous optimale de <=, parce quecomparecalcule plus de choses que <=Et parfois, il y a une des fonctions du cycle qui est plus naturelle à définir.
Please do not feed the trolls