У меня есть groovy script с неизвестным числом переменных в контексте во время выполнения, как мне их найти и напечатать имя и значение каждого?
Как перечислить все определенные переменные в groovy script
Ответ 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
Я не уверен, что означают _-переменные, но я уверен, что вы можете обойти их.