val cond:(Int,Int)=>布尔值=(...)此scala代码是什么意思?

时间:2019-01-27 08:40:33

标签: scala

我对第一行代码感到困惑。

第一行和第二行有什么区别?

val cond: (Int, Int) => Boolean = (...)  //confused
val cond = (x: Int, y: Int) => x > y  //anonymous function

1 个答案:

答案 0 :(得分:6)

一开始可能有点令人生畏,但是所有Scala声明都具有相同的形状:

val <name>[: <type>] = <value>

如果没有type,编译器会将其设置为value

所以第一种情况像这样分解:

  • namecond
  • type(Int, Int) => Boolean
  • value(...)

第二种情况如下:

  • namecond
  • value(x: Int, y: Int) => x > y
  • 推断type(Int, Int) => Boolean

在两种情况下,cond是一个需要两个Int并返回Boolean的函数。