Pregunta

Tengo un script maravilloso con un número desconocido de variables en contexto en el tiempo de ejecución, ¿cómo puedo encontrarlas e imprimir el nombre y el valor de cada una?

¿Fue útil?

Solución

Bueno, si está usando un script simple (donde no usa la palabra clave " def "), las variables que defina se almacenarán en el enlace y puede obtenerlas de esta manera:

foo = "abc"
bar = "def"

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

Impresiones:

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

No conozco una forma fácil de enumerar a través de las variables definidas con la " def " palabra clave, pero estaré viendo esta pregunta con interés para ver si alguien más sabe cómo hacerlo.

Otros consejos

En realidad, la respuesta de Ted también funcionará para las variables definidas.

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

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

rendimientos

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

No estoy seguro de lo que significan las variables _, pero estoy seguro de que puedes solucionarlas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top