Je trouve que la solution de rust pour la surcharge des opérateur n'est pas si mal. Chaque opérateur a un Trait associé que tu dois implémenter pour ton type.
L'inférence fonctionne la plupart du temps, et quand ce n'est pas le cas il suffit d'ajouter une petite annotation, comme
3u+4
De plus, il y a toujours une vérification :
letx=3u;x+3.0
mismatched types: expected `uint`, found `<generic float #0>` (expected uint, found floating-point variable)
Tu compares int_of_float avec ça ?
tu es mauvaise langue, c'est exactement la même chose que int_of_float sauf que ça gère les cas ou la valeur n'est pas convertible. Je sais pas trop ce qu'ocaml fait dans ce cas, mais là la méthode
.to_u8() renvoit juste une option.
.expect(error) c'est une méthode qui dit 'Renvoit v si Som(v) ou failure "error" si none'
[^] # Re: simple ?
Posté par Enj0lras . En réponse au journal Rust en version 0.12. Évalué à 1.
Je trouve que la solution de rust pour la surcharge des opérateur n'est pas si mal. Chaque opérateur a un Trait associé que tu dois implémenter pour ton type.
Exemple :
L'inférence fonctionne la plupart du temps, et quand ce n'est pas le cas il suffit d'ajouter une petite annotation, comme
De plus, il y a toujours une vérification :
tu es mauvaise langue, c'est exactement la même chose que int_of_float sauf que ça gère les cas ou la valeur n'est pas convertible. Je sais pas trop ce qu'ocaml fait dans ce cas, mais là la méthode
.to_u8() renvoit juste une option.
.expect(error) c'est une méthode qui dit 'Renvoit v si Som(v) ou failure "error" si none'