提取器
Scala中的提取器是一个对象,该对象具有称为unapply的方法作为其成员之一。该方法的目的是匹配值并将其拆开。通常,提取器对象还定义了构建值的对偶方法apply,但这不是必需的。
例如:
让我们以一个对象定义为例,同时应用apply和unapply方法。apply方法的含义一如既往:将Test变成一个对象,该对象可以以与apply方法相同的方式应用于括号中的参数。因此,您可以编写Test("Zara","gmail.com")
来构造字符串“Zara@gmail.com”。
unapply方法将Test类转换为提取器,并反转apply的构造过程。apply接受两个字符串并从中形成一个电子邮件地址字符串,unapply接受一个电子邮件地址并可能返回两个字符串:用户和地址的域。unapply还必须处理给定字符串不是电子邮件地址的情况。这就是为什么unapply在对字符串上返回选项类型。如果字符串str是具有给定用户和域部分的电子邮件地址,则结果为Some (user, domain),如果str不是电子邮件地址,则结果为None。下面是一些例子。
以下示例程序显示了电子邮件地址的提取器对象。
输出::