Como seguimiento a this preguntaRegex y la coincidencia de patrón en la Parte II Scala
Aquí hay un código que compila y se ejecuta correctamente, utilizando las capturas.
val myString = "ACATCGTAGCTGCTAGCTG"
val nucCap = "([ACTG]+)".r
myString match {
case nucCap(myNuc) => println("dna:"+myNuc)
case _ => println("not dna")
}
>scala scalaTest.scala
dna:ACATCGTAGCTGCTAGCTG
Aquí hay un código más simple, sin captura, que no se compila.
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
Parece que la coincidencia debe devolver un valor booleano independientemente de si se utiliza una captura. ¿Qué está pasando aquí?
para no criticar, pero ¿por qué dice que el caso predeterminado es inalcanzable (caso _ => println ("not dna")) –
Me perdí eso en mi respuesta, lo actualicé ahora para explicar eso. –