Scala 调用方法时使用u
产出如下:Scala 调用方法时使用u,scala,Scala,产出如下: getNum(_); getNum(3); def getNum(num: Int) { println("Num is " + num) } 是 为什么是getNum;没有被调用?在这种情况下如何使用?\u用于部分应用函数。一个函数的部分应用产生另一个函数,其中一些参数已经应用 val f = getNum(_) // partially apply f(3) // apply the function 你期望它是什么?getNumnull getNum_
getNum(_);
getNum(3);
def getNum(num: Int) {
println("Num is " + num)
}
是
为什么是getNum;没有被调用?在这种情况下如何使用?\u用于部分应用函数。一个函数的部分应用产生另一个函数,其中一些参数已经应用
val f = getNum(_) // partially apply
f(3) // apply the function
你期望它是什么?getNumnull getNum_;被翻译成,类似于:
{ x:Int => getNum(x) }
这是一个匿名函数,也是一个值本身
例如,您可以执行以下操作:
val f = getNum(_)
f(42)
然后你会看到:
Num is 42
返回一个新函数。因为您的代码没有保存或调用新函数,所以它会被丢弃。除了Pedro的答案之外,我建议您阅读。您可能会看到Num是42:D
Num is 42