Groovyでの次の構造の目的がわかりません。
もののコレクションがあるときはいつでも、それを呼び出しますitems
。コレクション上のその属性にアクセスするだけで、属性にマップできます。
items.prop == items.collect { it.prop }
これは私には奇妙に見えます。最初の表記は、実際にはコレクションオブジェクト自体のプロパティにアクセスすることを意味していると思うからです。たとえば、あいまいさの実際のケースが発生する可能性があります
[[1,2,3],['cat', 'elephant']].size == 2
しかし、前の表記法によれば、それはに等しいはず[3, 2]
です。
さらに、収集表記が十分に短くない場合は、次の*.
ように正確に使用することを目的としたスプレッドドット演算子があります。
[[1,2,3],['cat', 'elephant']]*.size = [3, 2]
あいまいなドット表記の目的は何ですか?キャラクターを節約するために追加されただけですか、それとも機能せず面倒な
*.
正当な使用例がありますか?*.
collect