J'ai essayé de créer une méthode unapply
à utiliser dans la correspondance de modèle, et j'ai essayé de lui faire retourner quelque chose de différent que Option
, mais Eclipse le montre comme une erreur. Est-ce une règle que unapply
doit retourner un Option[T]
?Est-ce une règle que l'application retournera toujours une option?
EDIT: voici le code que j'essaie d'utiliser. Je suis passé le code de la section précédente de sorte que unapply
retourne un
import java.util.regex._
object NumberMatcher {
def apply(x:String):Boolean = {
val pat = Pattern.compile("\\d+")
val matcher = pat.matcher(x)
return matcher.find
}
def unapply(x:String):Boolean = {
val pat = Pattern.compile("\\d+")
val matcher = pat.matcher(x)
return matcher.find
}
}
object x {
def main(args : Array[String]) : Unit = {
val strings = List("geo12","neo493","leo")
for(val str <- strings) {
str match {
case NumberMatcher(group) => println(group)
case _ => println ("no")
}
}
}
}
Eclipse dit wrong number of arguments for object NumberMatcher
. Pourquoi donc?
Pouvez-vous me montrer ce que je dois modifier pour que le unapply que retourne un booléen au travail? – Geo
Vous ne pouvez pas extraire un argument lors du renvoi de booléens. C'est juste 'case NumberMatcher() => ...'. – Dario
J'ai été surpris que l'option [Unité] ne fonctionne pas. –