Scala是一种有趣的语言,声称简洁,可扩展(通过在库中指定许多功能而不是编译器),并支持DSL.在尝试实现这一目标时,它有许多运算符和编译器调整(例如,支持中缀运算符,例如:_*以展平序列).
我发现很多运算符('Scala编程'索引中的2½页)和编译器调整令人困惑.公平地说,许多运算符是从C等人那里借来的传统算术/布尔运算符.
我被告知支撑这个有一些基本的句法规则,我认为如果我知道这些会降低我的认知负担.
是否有一些规则(如果是这样的话是什么)或者我注定要学习图书馆中的许多"操作员"方法和含义?
在Java中,<具有比==更高的优先级.在Scala中,反之亦然.我想知道Scala人为什么选择这种方式?其他二元运算符优先级与Java对齐(exept按位运算,但可以理解为什么它们没有给出特殊的优先级).
更新:这实际上是语言规范中的一个错误,'<'实际上比Scala中的'=='更高优先级.
scala ×2