在地图中使用键

时间:2017-06-02 20:54:32

标签: dictionary groovy key

我有这个功能:

def getMap(value = null) {
    [
        "SomeTitle": [ Param: 9, Size: 2, Default: 150, Val: value ]
    ]
}

我可以使用getMap(152).SomeTitle.Val

我想要做的是在计算密钥Size时使用密钥Val,例如:

def getMap(value = null) {
    [
        "SomeTitle": [ Param: 9, Size: 2, Default: 150, Val: value * Size ]
    ]
}

在计算另一个键的值时,有没有办法在地图中使用键的值作为变量

这在Java / Groovy中

1 个答案:

答案 0 :(得分:4)

Groovy无法在其初始化时自动引用地图,但您可以使用with {}方法进行一些初始化后处理:

def getMap(value = null) {
    [
        "SomeTitle": [ Param: 9, Size: 2, Default: 150 ].with {
            put('Val', value * get('Size'))
            it
        }
    ]
}


assert getMap(10).SomeTitle.Val == 20