50

我喜欢 Scala 关于运算符优先级的建议,但在极少数情况下,未修改的规则可能会带来不便,因为您在命名方法时受到限制。有没有办法在 Scala 中为类/文件等定义另一个规则?如果没有,以后会解决吗?

4

4 回答 4

104

运算符优先级在Scala Reference - 6.12.3 Infix Operations中由运算符中的第一个字符固定。按优先级升序排列:

(all letters)
|
^
&
= !
< >
:
+ -
* / %
(all other special characters)

而且改变的可能性不大。它可能会产生比它修复的问题更多的问题。如果您使用普通运算符优先级,将其更改为一个类将非常混乱。

于 2010-05-27T15:26:35.850 回答
8

有没有办法在 Scala 中为类/文件等定义另一个规则?如果没有,以后会解决吗?

没有这样的能力,在可预见的将来增加它的可能性很小。

于 2010-05-27T15:24:42.377 回答
2

在 scala 编译器的类型级分支中提出了一个功能请求,这是一个“预览”实验性功能的编译器版本。开发人员建议,如果有人为此编写SIP,可以考虑实施。

但在目前的状态下,没有办法覆盖优先级。它的规则在语言规范中正式定义。

于 2017-09-23T07:52:03.027 回答
0

未修改的规则可能不方便,因为您在命名方法时受到限制

有关“Rational”类示例,请参阅本书http://www.scala-lang.org/docu/files/ScalaByExample.pdf的第 6 章。

于 2016-12-12T19:13:05.967 回答