我可以理解这一点:
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/