提取器(extractor)
我們之前已經使用過scala中非常強大的模式匹配功能了,通過模式匹配,我們可以快速匹配樣例類中的成員變數。
例如:
// 1. 建立兩個樣例類
case class person(name:string, age:int)
case class order(id:string)
def main(args: array[string]
): unit =
年齡:$"
)case order(id1)
=> println(s"id為:$"
)case _ =
> println(
"未匹配")}
}
那是不是所有的類都可以進行這樣的模式匹配呢?答案是:
不可以的。要支援模式匹配,必須要實現乙個提取器。
定義提取器
示例
示例說明
建立乙個student類,包含姓名年齡兩個字段
實現乙個類的解構器,並使用match表示式進行模式匹配,提取類中的字段。
參考**:
結果:
Scala 提取器unapply方法
目錄 提取器是從傳遞給它的物件中提取出構造該物件的引數。e.g.傳入name amy,age 10,用於構造student類,這裡可以得到 uname amy,age 10 object client class foo foo string object foo 類似析構函式 例1package ...
Scala系列21 Scala提取器的使用
我們之前已經使用過scala中非常強大的模式匹配功能了,通過模式匹配,我們可以快速匹配樣例類中的成員變數。例如 1.建立兩個樣例類 case class person name string,age int case class order id string def main args array...
Scala基礎 提取器Extractor使用示例
package com.spark.scala.basics 1.case class person1 name string,age int class coder val name string,val salary int object coder 提取,用 some 封裝成tuple som...