2015年6月7日 星期日

scala list collect 用法

scala list collect 用法


collect methoad 接受 PartialFunction 作為參數。結果產生一個 list。輸出 list 的內容是該 PartialFunction 有定義且由 PartialFunction 運算後的值

PartialFunction 長的像這樣

{
    case a: Int => a.toString
    case a: String => 1
}


以下面例子作為說明

List(1, 2, "3", Nil) collect { case a: Int => a.toString case b: String => 1}

其結果為

List(1, 2, 1)

說明

原始的 list 內容是整數 1, 2
和字串 3 和一個 Nil 物件

整數 1 和 2 有定義在 PartialFunction,
因此1 和 2 經過 PartialFunction 運算後,會放在結果

又字串 3 有定義在 PartialFunction,
因此 3 經過 PartialFunction 運算後,會放在結果

又 Nil 不沒有定義在 PartialFunction
因此沒有出現在結果