scala语言学习(九)、提取器(Extractor)

提取器(Extractor)

提取器是从传递给它的对象中提取出构造该对象的参数。(回想样例类进行模式匹配提取参数)

scala 提取器是一个带有unapply方法的对象,unapply方法算是apply方法的反向操作,unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。

scala语言学习(九)、提取器(Extractor)

scala语言学习(九)、提取器(Extractor)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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("未匹配")
}
}
}
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论