apply_test

时间:2023-01-13 18:19:18

//object apply_test {
// def main(args:Array[String]): Unit ={
// println("apply 方法:" apply("zara","gmail.com"))
// println("unapplu方法" unapply("[email protected]"))
// 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
}

相关文章