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 に答える