其他分享
首页 > 其他分享> > apply_test

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