这些Scala语句的含义是什么?你怎么称呼这种语法? [中缀符号]

时间:2017-06-14 22:31:20

标签: scala infix-notation

我想弄清楚一些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的功能方面,但不确定。大括号在这种情况下有不同的含义吗?

1 个答案:

答案 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?