apply_test
作者:互联网
//object apply_test {
// def main(args:Array[String]): Unit ={
// println("apply 方法:"+apply("zara","gmail.com"))
// println("unapplu方法"+unapply("zara@gmail.com"))
// println("unapply方法"+unapply("zara ali"))
// }
// def apply(user:String,domain:String)={
// user+"@"+domain
// }
// def unapply(str:String):Option[(String,String)]={
// val parts=str split "@"
// if(parts.length==2){
// Some(parts(0),parts(1))
// }else{
// None
// }
// }
//}
//编译器在实例化的时会调用 apply 方法
//提取器对象中使用 match 语句是,unapply 将自动执行
object apply_test{
def main(args:Array[String]): Unit ={
val x=apply_test(5)
println(x)
x match{
case apply_test(num) =>println(x+"是"+num+"的2倍")
case _ =>println("无法计算")
}
}
def apply(x:Int)=x*2
def unapply(z:Int):Option[Int]=if(z%2==0) Some(z/2) else None
}
标签:unapply,String,println,test,apply,def 来源: https://www.cnblogs.com/hapyygril/p/11544451.html