1. ホーム
  2. scala

[解決済み] Scalaのパターンマッチングシステムで比較演算子を使う

2022-04-25 19:34:50

質問

Scalaのパターンマッチングシステムを使って、比較でマッチングすることは可能でしょうか? 例えば

a match {
    case 10 => println("ten")
    case _ > 10 => println("greater than ten")
    case _ => println("less than ten")
}

2つ目のcase文は不正ですが、"when a is greater than"を指定できるようにしたいのですが、どうすればいいですか?

どのように解決するのですか?

ガード、すなわち if と、パターンの後にブーリアン式を指定します。

a match {
    case 10 => println("ten")
    case x if x > 10 => println("greater than ten")
    case _ => println("less than ten")
}

編集:これは、表面的には if の後に その => というのは、パターン はしません。 が真でなければマッチしない。