J'aime la proposition de priorité d'opérateur de Scala, mais dans de rares cas, les règles non modifiées peuvent être gênantes, car vous avez des restrictions pour nommer vos méthodes. Existe-t-il des moyens de définir d'autres règles pour une classe/un fichier, etc. dans Scala? Sinon, serait-il résolu à l'avenir?
La priorité de l'opérateur est fixée dans Référence Scala - 6.12.3 Opérations d'infixe par le premier caractère de l'opérateur. Listés par ordre de priorité croissant:
(all letters)
|
^
&
= !
< >
:
+ -
* / %
(all other special characters)
Et il est peu probable que cela change. Cela créera probablement plus de problèmes qu'il n'en résout. Si vous utilisez la priorité d'opérateur normale, la changer pour une classe sera assez déroutant.
Existe-t-il des moyens de définir d'autres règles pour une classe/un fichier, etc. dans Scala? Sinon, serait-il résolu à l'avenir?
Cette capacité n'existe pas et il est peu probable qu'elle soit ajoutée dans un avenir prévisible.
Il y avait un demande de fonctionnalité levé dans le fourchette de type du compilateur scala , une version du compilateur qui 'prévisualise' les fonctionnalités expérimentales. Les développeurs ont suggéré que si quelqu'un écrivait un SIP pour cela, il pourrait être envisagé pour l'implémentation.
Mais dans son état actuel, il n'y a aucun moyen de remplacer la priorité. Ses règles sont formellement définies dans le spécification du langage .
les règles non modifiées peuvent être gênantes, car vous avez des restrictions pour nommer vos méthodes
Voir le chapitre 6 du livre http://www.scala-lang.org/docu/files/ScalaByExample.pdf pour l'exemple de classe "Rational".