unapply认为是伴生对象apply的反操作,定义在伴生对象中
场景:用于变量初始化的时候
var Fac(a,b) = Fac(1,2)*Fac(3,5)
注:Option类型表示可能有、可能无的值,Some是其子类。
object Test4 extends App { //提取器 object Fac{ def unapply(o:Fac) = Some(o.a,o.b) } class Fac(var a:Int,var b:Int){ def *(o:Fac)=new Fac(a*o.a ,b*o.b) def show=a+","+b; } var Fac(a,b)=new Fac(1,2)*new Fac(2,3); println(a+" , "+ b); }
时间: 2024-11-10 15:43:50