Je me suis trouvé coincé sur quelque chose de trivial: -]Comment utiliser switch/case (correspondance de motif simple) dans Scala?
J'ai un ENUM:
object Eny extends Enumeration {
type Eny = Value
val FOO, BAR, WOOZLE, DOOZLE = Value
}
Dans un code que je dois le convertir sous condition à un certain nombre (varianr numéro la correspondance diffère selon le contexte). Je vous écris:
val en = BAR
val num = en match {
case FOO => 4
case BAR => 5
case WOOZLE => 6
case DOOZLE => 7
}
Et cela me donne un « code injoignable » erreur du compilateur pour chaque branche, mais quel que soit le premier (« cas FOO => 4 » dans ce cas). Qu'est-ce que je fais mal?
Je pense que "en" est "val" et attribué à "BAR". Il ne peut pas être réaffecté plus tard, c'est donc égal à BAR n'importe où après une telle déclaration. – Wildcat
C'est un exemple simplifié, dans le vrai programme "en" est l'argument d'entrée d'une fonction. Il ne peut en effet pas être réaffecté à l'intérieur, mais peut différer d'appel à appel. – Ivan
Dans ce cas, peut-être pourriez-vous donner un exemple moins simplifié? En l'état, la réponse est que cela donne une erreur de "code inaccessible" parce qu'il y a du code inaccessible. –