scala學習筆記:變數宣告中的模式

白喬發表於2015-02-28

先看個正常的寫法:

scala> val x = 1
x: Int = 1

體會一下元組的寫法:

scala> val (x,y,z)=(1,2,3)
x: Int = 1
y: Int = 2
z: Int = 3

再來體會一個Array的匹配:

scala> val Array(x,y,_)=Array(1,2,3)
x: Int = 1
y: Int = 2

很好理解嘛!呼叫了Array伴生物件的unapplySeq(arr)嘛!
再來看個崩潰一點的:

scala> val pattern = "([0-9]+) ([a-z]+)".r
pattern: scala.util.matching.Regex = ([0-9]+) ([a-z]+)

scala> val pattern(x,y)="123 abc"
x: String = 123
y: String = abc

這個呼叫了Pattern類的unapplySeq()

相關文章