提取器
apply方法
伴生類和伴生對象的概念,companion class和companion object
伴生對象里面推汽,可以定義一個apply方法
直接調(diào)用類(參數(shù)),方式,就相當(dāng)于在調(diào)用apply方法
此時在apply方法中没讲,通常來說(也不一定)轰驳,會創(chuàng)建一個伴生類的對象厚掷,返回回去
這種方式,有一個好處级解,創(chuàng)建對象呢冒黑,非常的方便
不要每次都是new 類(參數(shù)),類(參數(shù))
提取器
unapply方法
和apply方法勤哗,顧名思義抡爹,那就是反過來
apply方法,可以理解為芒划,接收一堆參數(shù)冬竟,然后返回一個對象
unapply方法欧穴,可以理解為,接收一個字符串泵殴,解析成一個對象的各個字段
提取器就是一個包含了unapply方法的對象涮帘,跟apply方法正好相反
apply方法,是接收一堆參數(shù)笑诅,然后構(gòu)造出來一個對象
unapply方法调缨,是接收一個字符串,然后解析出對象的屬性值
class Person(val name: String, val age: Int)
object Person {
def apply(name: String, age: Int) = new Person(name, age)
def unapply(str: String) = {
val splitIndex = str.indexOf(" ")
if (splitIndex == -1) None
else Some((str.substring(0, splitIndex), str.substring(splitIndex + 1)))
}
}
val Person(name, age) = "leo 25"
name
age