我喜欢Scala提出的运算符优先级,但在极少数情况下,未经修改的规则可能不方便,因为在命名方法时有限制。有没有办法为Scala中的类/文件等定义另一个规则?如果没有,将来会解决吗?
运算符优先级在Scala Reference - 6.12.3 Infix Operations中由运算符中的第一个字符固定。按优先顺序列出:
(all letters)
|
^
&
= !
< >
:
+ -
* / %
(all other special characters)
它不太可能会发生变化。它可能会产生比修复更多的问题。如果您使用普通的运算符优先级,将其更改为一个类将非常混乱。
有没有办法为Scala中的类/文件等定义另一个规则?如果没有,将来会解决吗?
没有这样的能力,在可预见的未来几乎没有可能加入。
在feature request中有一个typelevel fork of the scala compiler,编译器的一个版本“预览”实验性功能。开发人员建议,如果有人为此编写SIP,可以考虑实施。
但在它的当前状态下,没有办法覆盖优先权。它的规则在language specification中正式定义。
未经修改的规则可能不方便,因为您在命名方法时有限制
有关“Rational”类示例,请参阅本书http://www.scala-lang.org/docu/files/ScalaByExample.pdf的第6章。