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()方法,检查学生是否被传递,并根据结果删除它。