【发布时间】:2016-10-17 16:38:52
【问题描述】:
我想在 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 两次时,由于 varName 已定义而发生错误。
我也试过了
def runExtFunc(varName){
def "${varName}" // => def abc
[...]
"${varName}" = load 'someFile.groovy'
[...]
}
这也不起作用。
有什么建议吗?
【问题讨论】:
-
你能举例说明你为什么想要这个吗?你的第一个代码应该只适用于
varName,我不明白你为什么要命名一个本地范围的变量?