4 Stimmen

Wie referenziert man einen Wert in einer case-Anweisung?

Ich habe einen langsamen Morgen. Ich dachte, dass es in Ordnung wäre, auf einen bereits vorhandenen Wert in einer Case-Anweisung Bezug zu nehmen. Aber anscheinend wird es als lokale Variablendefinition interpretiert. Eine rudimentäre Google-Suche hat nicht geholfen und ich habe mein Treppenbuch nicht dabei.

Im Folgenden, was ist die Syntax, die es mir ermöglichen würde, auf case (b, c) abzugleichen?

scala> val (a,b,c) = (1,2,3)
a: Int = 1
b: Int = 2
c: Int = 3

scala> (2,3) match {
     | case (a,b) => 100
     | case (b,c) => 200
     | case _ => 999
     | }
:8: Fehler: Unzulässiger Code
       case (b,c) => 200

11voto

Moritz Punkte 14044

Sie müssen entweder die vals großschreiben oder die Bezeichner in Backticks wie folgt eingeben:

  case (`b`, `c`) => 200

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X