我对第一行代码感到困惑。
第一行和第二行有什么区别?
val cond: (Int, Int) => Boolean = (...) //confused
val cond = (x: Int, y: Int) => x > y //anonymous function
答案 0 :(得分:6)
一开始可能有点令人生畏,但是所有Scala声明都具有相同的形状:
val <name>[: <type>] = <value>
如果没有type
,编译器会将其设置为value
所以第一种情况像这样分解:
name
是cond
type
是(Int, Int) => Boolean
value
是(...)
第二种情况如下:
name
是cond
value
是(x: Int, y: Int) => x > y
type
为(Int, Int) => Boolean
在两种情况下,cond
是一个需要两个Int
并返回Boolean
的函数。