groovyで変数名を別の変数で渡す場所を定義します。Groovy - 変数名が別の変数によって渡される変数を定義します。
何かが好きです。
def runExtFunc(varName){
def varName // => def abc
varName = load 'someFile.groovy' // abc = load 'someFile.groovy'
varName."$varName"() // -> abc.abc() (run function defined in File)
}
[...]
runExtFunc('abc') // -> abc.abc() (Function abc defined in File)
[...]
runExtFunc('xyz') // -> xyz.xyz() (Function xyz defined in File)
[...]
悲しいことに、def varNameは変数varNameを定義し、abcは定義しません。 runExtFuncを2回呼び出すと、varNameがすでに定義されているためにエラーが発生する可能性があります。
また、私はどちらか動作しません
def runExtFunc(varName){
def "${varName}" // => def abc
[...]
"${varName}" = load 'someFile.groovy'
[...]
}
を試してみました。
提案がありますか?
はあなたがこれをしたい理由の例を与えることができますか?あなたの最初のコードは 'varName'だけで動作するはずです。なぜローカルスコープの変数に名前を付けるのかわかりません。 –
このリンクを参照してください。http://stackoverflow.com/questions/6729605/assigning-variables-with-dynamic-names-in-java –