Posté par Enj0lras .
En réponse au journal Rust en version 0.12.
Évalué à 1.
Dernière modification le 15 octobre 2014 à 14:30.
La définition est commutative, même si à première vue c'est pas clair. RHS, c'est le type des éléments additionnés, et Result c'est le type de retour. Ça permet d'implémenter des lois externes. L'implémentation pour int est en fait Add.
Dans "3.0 + 1", tu fais jouer l'addition flottante ou entière ?
Aucune des deux, justement. Ça ne compile pas. En effet, comme expliqué précédement, les deux opérandes doivent avoir le même type.
Est-ce que Add est polymorphique ?
Oui et non du coup. + est un opérateur polymorphe parce qu'il est implémenté pour tout les types T implémentant le trait Add.
Donc
1u+1u
1.0+1.0
Mais il n'est pas "polymorphique" comme en javascript ou php ou tu peux ajouter deux types différents. Mieux, il est impossible d'implémenter un tel opérateur plus en rust. (enfin, pas à ma connaissance.
Je connais pas trop haskell, mais il me semble que c'est assez similaire avec leur typeclass Num.
Qu'est-ce qui se passe si tu joues avec les classes mères ?
[^] # Re: simple ?
Posté par Enj0lras . En réponse au journal Rust en version 0.12. Évalué à 1. Dernière modification le 15 octobre 2014 à 14:30.
La définition est commutative, même si à première vue c'est pas clair. RHS, c'est le type des éléments additionnés, et Result c'est le type de retour. Ça permet d'implémenter des lois externes. L'implémentation pour int est en fait Add.
Aucune des deux, justement. Ça ne compile pas. En effet, comme expliqué précédement, les deux opérandes doivent avoir le même type.
Oui et non du coup. + est un opérateur polymorphe parce qu'il est implémenté pour tout les types T implémentant le trait Add.
Donc
Mais il n'est pas "polymorphique" comme en javascript ou php ou tu peux ajouter deux types différents. Mieux, il est impossible d'implémenter un tel opérateur plus en rust. (enfin, pas à ma connaissance.
Je connais pas trop haskell, mais il me semble que c'est assez similaire avec leur typeclass Num.
pas compris ;)
En fait non :