我想知道我们是否可以使用它的其他键值条目在Groovy映射中插值。例如,
def ten = 10
def example = [
a: "apple",
b: "${ten} bats",
c: "${example.b}" //or something like self.b
]
如果是这样,请告诉我如何完成这项工作?
正如评论中已经说明的那样,地图的字面意思很可能不允许这样做。但你可以使用tap
(或with
,如果你<2.5)非常接近你的代码,这允许在地图内查找事物(基本上这是你在哪里寻找的自我引用)
EG
def ten = "ten"
def map = [:].tap{
a = "apple"
b = "${ten} ${a}s"
}
assert map == [a:"apple", b:"ten apples"]