2013-10-28 37 views
0
val withDefault: Option[Int] => Int = { 
    case Some(x) => x 
    case None => 0 
} 

我不明白的是,這是怎麼一個法律函數?具體來說,在「>」之後做什麼是'Int'?請幫我理解這一塊帶有圖案的scala

我認爲函數文本是象:

(x: Int) => x * x 

謝謝!

+0

'選項[INT] => Int'是類型 – sschaef

+0

天上... 。 謝謝!! – Bruce

+0

這是非常少用的語法;通常只需寫'def withDefault(o:Option [Int]):Int = o match {...}'。 –

回答

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 
    }