Scala 提取器
Scala|提取器
提取器是一种特殊类型的对象具有一些特殊的方法。这些方法是: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()方法,检查学生是否被传递,并根据结果删除它。