演算子あれこれ
記号なのでググってもなかなか見つからないのよね・・
// 単なる配列 list = [1,2,3] // 空配列 emptyList = [] // 空Map emptyMap = [:] // エルビス演算子(と言われているみたい) newList = [] ?: list // => [1,2,3] newList = null ?: list // => [1,2,3] newList = [1] ?: list // => [1] // 要するに newList = term1 ? term1 : term2 // 自動引数it list.each{ println it} // 1 2 3 list.each{ e -> println e} // 1 2 3 // クラス定義 class C { def s C(s) { this.s = s } } // オブジェクト c1 = new C("obj1") c2 = new C("obj2") c3 = new C("obj3") // 配列内のオブジェクトのそれぞれのプロパティを配列にする [c1,c2,c3]*.s.each{ println it } // obj1 obj2 obj3 // nullチェック付きプロパティ参照 c4 = null s = c1?.s // "obj1" s = c4?.s // null
もっと役立つチートシート:http://npnl.hatenablog.jp/entry/20081224/1230124652