例如,可以执行此类操作(此操作失败):
def map = [ property: 1,
propertyPlusOne: map.property + 1]
当然,这样做是可行的:
def map = [:]
map.property = 1
map.propertyPlusOne = map.property + 1
但声明中的所有内容?
答案 0 :(得分:2)
您可以使用with
声明:
def map = [ : ].with {
property = 1
propertyPlusOne = property + 1
it
}
assert map.propertyPlusOne == 2
虽然像ruby的tap
(或@timyates' extension)之类的东西稍微清晰一点:
def map = [ : ].tap {
property = 1
propertyPlusOne = property + 1
}
assert map.propertyPlusOne == 2
答案 1 :(得分:1)
一般不会。
您必须先定义并初始化map
var,才能设置值:
def map = [ property: 1 ]
map += [ propertyPlusOne: map.property + 1]
我不确定你要做什么,但可能值得检查withDefault()
方法。