Skip to end of metadata
Go to start of metadata


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値) を追加すればよいのです。

  • No labels