我想弄清楚一些Scala代码。这是一个创建可变Map和Ordering对象的片段。
import scala.collection.mutable
val score = mutable.Map(start -> 0d) withDefaultValue Double.PositiveInfinity
val priority = Ordering by {n: Node => score(n) + heuristic(n)}
如果您只是在没有逗号或括号的表达式后面添加术语,那么您将此代码称为什么?我有一种感觉这是Scala的功能方面,但不确定。大括号在这种情况下有不同的含义吗?
答案 0 :(得分:3)
如果您只是在没有逗号或括号的表达式后面添加术语,那么您将此代码称为什么?
这是使用'中缀符号',请参阅http://docs.scala-lang.org/style/method-invocation.html
我感觉这是Scala的功能方面,但不确定。
这是一种语法糖'与函数式编程没有直接关系。
大括号在这种情况下有不同的含义吗?
在此上下文中,花括号定义表达式块。 这里有更详细的讨论: What is the formal difference in Scala between braces and parentheses, and when should they be used?