GroovyのBooleanテストの評価
忘れそうなのでメモ。出典はGroovy イン・アクション(P130,131)
Booleanテストで使われるルールの順番
実行時の真 | 判定される基準 |
---|---|
Boolean | 値がtrue |
Matcher | マッチする |
Collection | コレクションが空ではない |
Map | マップが空ではない |
String, GString | 文字列が空ではない |
Number, Character | 値がゼロではない |
上記以外 | 参照がnullではない |
テストの例
// Boolean値は自明 assert true assert !false // Matcherはマッチすること assert ('a' =~ /./) assert !('a' =~ /b/) // コレクションは空ではないこと assert [1] assert ![] // マップは空ではないこと assert ['a':1] assert ![:] // 文字列は空ではないこと assert 'a' assert !'' // 数値(どの型も)はゼロではないこと assert 1 assert 1.1 assert 1.2f assert 1.3g assert 2L assert 3G assert !0 // その他は、すべてnullではないこと assert new Object() assert !null
使用例
例えば、リストが空になるまで繰り返す処理なんかを書くときに、List#isEmpty()とかで判定しなくてよくなります。
def list = [1, 2, 3, 4, 5] while (list) { // リストが空でない間繰り返す println list list = list.tail() }
実行結果
[1, 2, 3, 4, 5]
[2, 3, 4, 5]
[3, 4, 5]
[4, 5]
[5]
(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10)
参考
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 106回
- この商品を含むブログ (113件) を見る