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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top