- 定義:從傳遞給它的對象中提取出構造該對象的參數 (類似 樣例類進行模式匹配提取參數 )
case SubmitTask(id, name) => println(s"id=$id, name=$name"
- 原理:Scala提取器是一個帶有unapply方法的對象 ; unapply方法算是apply方法的反向操作 ;
class Student { var name:String = _ // 姓名 var age:Int = _ // 年齡 // 實現一個輔助構造器 def this(name:String, age:Int) = { this() this.name = name this.age = age } } object Student { def apply(name:String, age:Int): Student = new Student(name, age) // 實現一個解構器 def unapply(arg: Student): Option[(String,Int)] = Some(arg.name,arg.age) } object extractor_DEMO { def main(args: Array[String]): Unit = { val zhangsan = Student("張三", 20) zhangsan match { case Student(name, age) => println(s"姓名:$name 年齡:$age") case _ => println("未匹配") } } } //輸出:姓名:張三 年齡:20