Как мне перечислить все определенные переменные в заводном скрипте

StackOverflow https://stackoverflow.com/questions/216484

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть groovy-скрипт с неизвестным количеством переменных в контексте во время выполнения, как мне найти их все и напечатать имя и значение каждой?

Это было полезно?

Решение

Что ж, если вы используете простой скрипт (где вы не используете ключевое слово "def"), переменные, которые вы определяете, будут сохранены в привязке, и вы можете получить к ним доступ следующим образом:

foo = "abc"
bar = "def"

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

С принтами:

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

Я не знаю простого способа перечисления переменных, определенных с помощью ключевого слова "def", но я буду с интересом следить за этим вопросом, чтобы узнать, знает ли кто-нибудь еще, как это сделать.

Другие советы

На самом деле, ответ Ted также будет работать для "определенных" переменных.

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

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

урожайность

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

Я не уверен, что означают _-переменные, но я уверен, что вы можете обойти их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top