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