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...