GroovyはJavaの通常のif-else構文をサポートします。
また、Groovyは三項演算子もサポートします。
switch文
Groovyのswitch文はJavaと後方互換がありますので、複数の条件に一致するような継続するタイプのcase文には同じコードを使うことができます。
1つ違うのはGroovyはどんな種類のスイッチ値でも扱うことができ、異なる種類のマッチングを実行できることです。
switchは次のような比較をサポートします。
- Classのcase値は、switch値がinstanceofなクラスであれば一致
- 正規表現のcase値は、switch値が正規表現に一致すれば一致
- Collectionのcase値は、switchがCollectionに含まれれば一致
- 上のどれにもcase値が含まれなければcase値とswitch値がequalsであれば一致
switchはどのように機能しているのか
case文は isCase(switchValue) メソッドを使ってcase値と 一致 するかを評価します。それはデフォルトでは equals(switch値) を呼び出します。Classや正規表現などのさまざまなタイプはそれをオーバーロードしているのです。
ですので、一致を判定するためのをクラスを独自で作ることができ、そのためには独自の一致判定方法を提供するために isCase(switch値) を追加すればよいのです。
Labels