Подтвердить что ты не робот

Как перечислить все определенные переменные в groovy script

У меня есть groovy script с неизвестным числом переменных в контексте во время выполнения, как мне их найти и напечатать имя и значение каждого?

4b9b3361

Ответ 1

Хорошо, если вы используете простой script (где вы не используете ключевое слово "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", но я буду с интересом наблюдать за этим вопросом, чтобы узнать, знает ли кто-то другой.

Ответ 2

Собственно, ответ Теда также будет работать для "def'ed variables".

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

Я не уверен, что означают _-переменные, но я уверен, что вы можете обойти их.