package day03
/**
* apply和unapply方法
* apply方法通常称为注入方法,在伴生对象里做一些初始化的操作
* apply方法的参数列表不需要和构造器的参数列表统一
* apply方法通常被称为提取方法,使用unapply方法来提取固定数量的对象
* unapply方法会返回一个序列(Option),内部生产了一个Some对象来存放一些值
* apply方法和unapply会被隐式的调用
* @param name
* @param age
* @param faceValue
*/
class ApplyDemo(val name: String, var age: Int, var faceValue: Int) {
}
object ApplyDemo {
def apply(name: String, age: Int, gender: Int,faceValue: Int): ApplyDemo = new ApplyDemo(name,age,faceValue)
def unapply(applyDemo: ApplyDemo): Option[(String, Int, Int)] = {
if (applyDemo == null) {
None
}else {
Some(applyDemo.name,applyDemo.age,applyDemo.faceValue)
}
}
}
object Test2 {
def main(args: Array[String]): Unit = {
val applyDemo = ApplyDemo("lulu",21,0,90) //调用apply方法
applyDemo match {
case ApplyDemo("lulu",age,faceValue) => println(s"age: $age")
case _ => println("No match nothing")
}
}
}
apply和unapply方法
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. Angularjs $scope 里面的$apply 方法 $apply 方法作用: Scope 提供$ap...