Como posso enumerar todas as variáveis ??definidas em um script Groovy
Pergunta
Eu tenho um script groovy com um número desconhecido de variáveis ??no contexto em tempo de execução, como faço para encontrá-los todos e imprimir o nome eo valor de cada um?
Solução
Bem, se você estiver usando um script simples (onde você não usar o "def" palavra-chave), as variáveis ??que definem serão armazenados na ligação e você pode chegar a eles assim:
foo = "abc"
bar = "def"
if (true) {
baz = "ghi"
this.binding.variables.each {k,v -> println "$k = $v"}
}
Prints:
foo = abc
baz = ghi
args = {}
bar = def
Eu não estou ciente de uma maneira fácil de enumerar as variáveis ??definidas com o "def" palavra-chave, mas eu vou estar assistindo a essa pergunta com interesse para ver se alguém sabe como.
Outras dicas
Na verdade, a resposta de Ted também vai trabalhar para 'variáveis ??def'ed.
def foo = "abc" def bar = "def" if (true) { baz = "ghi" this.binding.variables.each {k,v -> println "$k = $v"} }
rendimentos
baz = ghi __ = [null, null, null] foo = abc _ = null bar = def
Eu não tenho certeza o que os _-variáveis ??significam, mas eu tenho certeza que você pode trabalhar em torno deles.