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