Come enumerare tutte le variabili definite in uno script groovy
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?
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.