Domanda

Ho uno script groovy con un numero sconosciuto di variabili nel contesto in fase di esecuzione, come posso trovarle tutte e stampare il nome e il valore di ciascuna?

È stato utile?

Soluzione

Bene, se stai usando un semplice script (in cui non usi la parola chiave " def "), le variabili che definirai saranno memorizzate nell'associazione e puoi ottenerle in questo modo:

foo = "abc"
bar = "def"

if (true) {
    baz = "ghi"
    this.binding.variables.each {k,v -> println "$k = $v"}
}

Stampe:

    foo = abc 
    baz = ghi 
    args = {} 
    bar = def

Non sono a conoscenza di un modo semplice per enumerare le variabili definite con " def " parola chiave, ma guarderò questa domanda con interesse per vedere se qualcun altro sa come.

Altri suggerimenti

In realtà, la risposta di Ted funzionerà anche con variabili "def".

def foo = "abc"
def bar = "def"

if (true) {
    baz = "ghi"
    this.binding.variables.each {k,v -> println "$k = $v"}
}

rendimenti

baz = ghi
__ = [null, null, null]
foo = abc
_ = null
bar = def

Non sono sicuro del significato delle variabili _, ma sono sicuro che puoi aggirarle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top