groovyスクリプトで定義されたすべての変数を列挙するにはどうすればよいですか

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」変数に対しても機能します。

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