我在运行时在上下文中有一个带有未知数量变量的groovy脚本,如何找到它们并打印每个变量的名称和值?

有帮助吗?

解决方案

好吧,如果您使用的是一个简单的脚本(不使用“def”关键字),您定义的变量将存储在绑定中,您可以像这样得到它们:

foo = "abc"
bar = "def"

if (true) {
    baz = "ghi"
    this.binding.variables.each {k,v -> println "$k = $v"}
}

打印:

    foo = abc 
    baz = ghi 
    args = {} 
    bar = def

我不知道一种简单的方法来枚举用“def”定义的变量。关键字,但我会兴趣地看这个问题,看看别人是否知道如何。

其他提示

实际上,Ted的回答也适用于'def'ed变量。

def foo = "abc"
def bar = "def"

if (true) {
    baz = "ghi"
    this.binding.variables.each {k,v -> println "$k = $v"}
}

产量

baz = ghi
__ = [null, null, null]
foo = abc
_ = null
bar = def

我不确定_变量是什么意思,但我相信你可以解决它们。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top