定义提取器
- unapply是将该类的对象,拆解为一个个的元素。
- 要实现一个类的提取器,只需要在该类的伴生对象中实现一个unapply方法即可
语法格式
def unapply(stu:Student):Option[(类型1, 类型2, 类型3...)] = {
if(stu != null) {
Some((变量1, 变量2, 变量3...))
}
else {
None
}
}
代码示例
class Student(var name: String, var age: Int)
object Student {
def apply(name: String, age: Int): Student = new Student(name, age)
def unapply(student: Student): Option[(String, Int)] = {
val tuple = (student.name, student.age)
Some(tuple)
}
}
object Test01 {
def main(args: Array[String]): Unit = {
val a = Student("张三", 20)
a match {
case Student(name, age) => println(s"${name} => ${age}")
}
}
}