0
val withDefault: Option[Int] => Int = {
    case Some(x) => x
    case None => 0
}

我不明白的是,这是一个合法的函数文字吗?具体来说,在 => 之后那个“Int”在做什么?

我认为函数文字就像:

(x: Int) => x * x

谢谢!

4

1 回答 1

2

定义匿名函数有不同的方法。从语言参考第 8.5 节(http://scala-lang.org/files/archive/nightly/pdfs/ScalaReference.pdf):

An anonymous function can be defined by a sequence of cases
  { case p1 => b1 ... case pn => bn }

我相信您的示例与以下内容完全相同:

  val withDefault: Option[Int] => Int = x => x match {
    case Some(x) => x
    case None => 0
  }
于 2013-10-28T18:07:25.307 回答