Как мне перечислить все определенные переменные в Groovy скрипте - PullRequest
18 голосов
/ 19 октября 2008

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

Ответы [ 2 ]

20 голосов
/ 19 октября 2008

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

4 голосов
/ 16 ноября 2008

На самом деле, ответ Теда также будет работать для переменных с определением.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...