別の開発者のグルーヴィーなコードを読んでいるときに、次の定義に遭遇しました。
def foo=[:]
どういう意味ですか?
[:]
は空のマップを作成します。コロンは、空のリストを作成する[]
と区別するためにあります。
このグルーヴィーなコード:
def foo = [:]
これはおおよそ次のようになりますJavaコード:
Object foo = new Java.util.LinkedHashMap();
引用 the doc :
_
[:]
_が空のマップ式であることに注意してください。
... Map
がsize()
が0を返す唯一の_)です。それ自体はめったに役に立ちませんが、もちろん、このMapに値を追加できます。
_def emptyMap = [:]
assert emptyMap.size() == 0
emptyMap.foo = 5
assert emptyMap.size() == 1
assert emptyMap.foo == 5
_