相关疑难解决方法(0)

Scala中的运算符优先级

我喜欢Scala提出的运算符优先级,但在极少数情况下,未经修改的规则可能不方便,因为在命名方法时有限制.有没有办法为Scala中的类/文件等定义另一个规则?如果没有,将来会解决吗?

scala operator-precedence

47
推荐指数
2
解决办法
2万
查看次数

Scala中的右关联方法有什么用?

我刚刚开始使用Scala,我刚学会了如何使方法成为正确关联(而不是在命令式面向对象语言常见的更传统的左关联性).

首先,当我cons在Scala中看到列表的示例代码时,我注意到每个示例总是在右侧有List:

println(1 :: List(2, 3, 4))
newList = 42 :: originalList
Run Code Online (Sandbox Code Playgroud)

然而,即使在一遍又一遍地看到这一点之后,我也没有三思而后行,因为我不知道(当时)这::是一种方法List.我只是假设它是一个运算符(再次,在Java中的运算符意义上),并且关联性并不重要.List在示例代码中始终出现在右侧的事实似乎巧合(我认为它可能只是"首选样式").

现在我知道的更好:它必须以这种方式编写,因为它::是正确联想的.

我的问题是,能够定义右关联方法的重点是什么?

这纯粹是出于审美原因,还是在某些情况下,权利关联实际上可以带来某些与左联结相关的好处?

从我(新手)的角度来看,我真的不知道如何

1 :: myList
Run Code Online (Sandbox Code Playgroud)

比任何更好

myList :: 1
Run Code Online (Sandbox Code Playgroud)

但这显然是一个微不足道的例子,我怀疑这是一个公平的比较.

scala operators operator-precedence

31
推荐指数
1
解决办法
8970
查看次数

为什么Scala改变了关系运算符和相等运算符的相对优先级(与Java相比)?

在Java中,<具有比==更高的优先级.在Scala中,反之亦然.我想知道Scala人为什么选择这种方式?其他二元运算符优先级与Java对齐(exept按位运算,但可以理解为什么它们没有给出特殊的优先级).

更新:这实际上是语言规范中的一个错误,'<'实际上比Scala中的'=='更高优先级.

scala

7
推荐指数
1
解决办法
822
查看次数

标签 统计

scala ×3

operator-precedence ×2

operators ×1