匹配作爲後續this問題正則表達式格局,斯卡拉第二部分
下面是一些編譯和運行正常,使用捕捉代碼。
val myString = "ACATCGTAGCTGCTAGCTG"
val nucCap = "([ACTG]+)".r
myString match {
case nucCap(myNuc) => println("dna:"+myNuc)
case _ => println("not dna")
}
>scala scalaTest.scala
dna:ACATCGTAGCTGCTAGCTG
這裏是更簡單的代碼,沒有捕獲,不編譯。
val myString = "ACATCGTAGCTGCTAGCTG"
val nuc = "[ACGT]+".r
myString match {
case nuc => println("dna")
case _ => println("not dna")
}
>scala scalaTest.scala
scalaTest.scala:7: error: unreachable code
似乎匹配應該返回布爾值,無論是否使用捕獲。 這是怎麼回事?
不是挑剔的,但爲什麼它說默認情況是不可達的(case _ => println(「不是dna」)) –
我錯過了我的答案 - 現在更新它來解釋這一點。 –