无法确定这个groovy闭包是如何工作的

时间:2012-07-30 22:46:51

标签: groovy

我是groovy的新手,正在阅读一个测试用例,我发现了以下内容:

def temp = {
        def temp = new HashMap()
        temp.clear()
        temp.set('A', '1')
        temp.set('B', '2')
        temp
    }

我想知道临时变量在定义结束时保留的值,因为它在测试用例中使用

assert Blah.blah(temp())

1 个答案:

答案 0 :(得分:2)

它应该类似于地图[ A:1, B:2 ]

您的断言行调用temp(),返回该地图,然后将其传递给Blah.blah方法

您可以将整个闭包重写为:

def temp = { -> [ A:1, B:2 ] as HashMap }

如果LinkedHashMap可以,你甚至可以不用as HashMap