以下输出:
getNum(_);
getNum(3);
def getNum(num: Int) {
println("Num is " + num)
}
是
Num is 3
为什么getNum(_);
没有被调用?在这种情况下如何使用_
?
答案 0 :(得分:6)
你期望它是什么? getNum(null)
?
getNum(_);
被翻译成:
{ x:Int => getNum(x) }
这是一个匿名函数和一个值本身。
你可以这样做:
val f = getNum(_)
f(42)
然后你会看到:
Num is 42
答案 1 :(得分:1)
_
用于部分应用函数。部分应用函数会产生另一个函数,其中已经应用了一些参数。
val f = getNum(_) // partially apply
f(3) // apply the function