我可以理解这一点:

scala> def f(i: Int) = "dude: " + i
f: (i: Int)java.lang.String

scala> f(3)
res30: java.lang.String = dude: 3

它定义了一个函数 f,它接受一个 int 并返回一个格式为 dude: + 传入的 int 的字符串。

现在可以像这样指定相同的函数:
val f: Int => String = x => "dude: " + x
scala> f(3)
res31: String = dude: 3
  • 为什么需要两个=>
  • String = x 是什么意思?我认为当你想在 Scala 中定义一些东西时,你会做 x:String 吗?
  • 最佳答案

    你应该把它解析为

    val (f: Int => String) = (x => "dude: " + x)
    

    因此它指定 f 具有 (Int => String) 类型并被定义为一个匿名函数,该函数采用 Int 参数 (x) 并返回一个 String

    关于scala - 难以理解函数语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14430334/

    10-15 18:46