0

scala が初めてで、マッチ式が機能しないようです。ステートメントの評価方法の違い (たとえば、宣言されたものとは対照的な新しい変数) について読んだことがありますが、バッククォートや大文字化を機能させることができないようです。

// declared inside of object
val numberOne = "+17201234567"
val numberTwo = "+17201235678"

def returnSomething(number: String): String = number match {
  case numberOne => "my first number"
  case numberTwo => "my second number"
  case _ => "a default number"
}

...

returnSomething("+17201235678") // should return "my second number"

match ステートメントの 2 行目に「到達不能コード」エラーが表示されるため、これが機能しない理由を明確にしてください。私はこの質問がすべて終わったことを知っていますが、何らかの理由で、私が見た例はどれもうまくいきませんでした. 典型的なnoob言語のもの。ありがとう!

4

1 に答える 1

7

これらのいずれかが機能します。

// declared inside of object
val numberOne = "+17201234567"
val numberTwo = "+17201235678"

def returnSomething(number: String): String = number match {
  case `numberOne` => "my first number"
  case `numberTwo` => "my second number"
  case _ => "a default number"
}


// declared inside of object
val NumberOne = "+17201234567"
val NumberTwo = "+17201235678"

def returnSomething(number: String): String = number match {
  case NumberOne => "my first number"
  case NumberTwo => "my second number"
  case _ => "a default number"
}

しかし、あなたは試してみたがうまくいかなかったと言いました。それで、正確に何がうまくいかなかったのですか?

于 2012-06-25T00:21:25.480 に答える