有没有办法像在Haskell中使用$强制在Scala中强制运算符优先级?
例如,在Haskell中,您具有:
a b c = ((a b) c)
和
a $ b c = a (b c)
Scala中有类似的方法吗?我知道Scala本身没有运算符,但是有没有办法实现类似的效果?
最佳答案
中缀vs。表示法通常以类似的方式用于控制优先级:
a b c d == a.b(c).d
a.b c d == a.b.c(d)
a b c.d == a.b(c.d)
对于在中缀表示法中使用的运算符,Scala还具有固定的优先顺序:
(all letters)
|
^
&
< >
= !
:
+ -
* / %
(all other special characters)
通常可以显式选择名称以利用此优势。例如,标准解析器库中的
~
和^^
。
关于scala - 是否有一个类似于Haskell的$(美元符号)的Scala运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843010/