Où sont exactement les méthodes * =/+ =/etc déclarées pour les sous-classes de AnyVal? Je suppose que quelque chose de spécial est fait pour ces types parce que, en val, ceux-ci ne sont pas valides, mais en tant que var, ils vont bien. Est-ce juste plus de sucre syntatique? Je suppose qu'il tourne+ =/* =/etc opérateurs sur les types AnyVal (Int, Double, etc ...) dans Scala
a *= 5
dans
a = a * 5
qui échoue évidemment pour un val. Cette intuition est-elle correcte? Je suppose aussi qu'il ne tente que cela pour AnyVals? Merci
Et * a * doit être mutable, à savoir un ** var **. –
Donc, dans une situation connexe, alors pour une var 'a' qui a défini les deux méthodes dites', OP = 'et' OP', 'OP = b' devient' a = a OP b' ou 'a. OP = (b) '? –
Et pour répondre à ma propre question, il semble que 'OP =' prenne la priorité (ce qui est logique) et 'OP' n'est appelé que si' OP = 'n'existe pas. –