提取器是一种特殊类型的对象具有一些特殊的方法。这些方法是:apply()和unapply()
。
提取器对象的apply()方法用于提供对象的值,它获取参数值,对其进行格式化并将其添加到对象中。
提取器对象的unapply()方法用于从对象中删除值,它匹配该值并将其从对象列表中删除。
让我们以apply()和unapply()方法为例。apply()方法接受参数并将它们添加到类中。unapply()的作用正好相反,它接受参数,匹配参数,然后删除,即解构。
程序:
object Student { def main(args: Array[String]) { def apply(name: String, result: String) = { name +" 是 "+ result } def unapply(x: String): Option[(String, String)] = { val y = x.split("is") if (y.length == 2 && y(1)=="Pass") { Some(y(0), y(1)) } else None } println ("Apply方法返回: " + apply("Ram", "Pass")) println ("Unapply方法返回: " + unapply("Ram是Pass")) } }
输出结果
Apply方法返回: Ram 是 Pass Unapply方法返回: Some((Ram,Pass))
说明:
这里的unapply()方法,检查学生是否被传递,并根据结果删除它。