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