调用方法时使用_

时间:2015-10-23 22:35:54

标签: scala

以下输出:

getNum(_);
  getNum(3);

  def getNum(num: Int) {
    println("Num is " + num)
  }

Num is 3

为什么getNum(_);没有被调用?在这种情况下如何使用_

2 个答案:

答案 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