【发布时间】:2012-03-22 07:05:47
【问题描述】:
在我在 groovy 脚本引擎上运行的 groovy 脚本中,所有变量似乎都是全局的。我制作了一些 groovy 类,但是当我制作变量时,可以从任何地方访问它们。例如。
class test{
void func1{ a=4 }
void func2{ print(a) }
}
当我从 scala 调用此类函数 func1 然后调用 func2 时,结果为“4”。奇怪的是,如果我在函数中声明像“def a=0”这样的变量,变量的范围将在函数中受到限制。
我正在像这样从 GroovyScriptEngine 加载我的 groovy 脚本(使用 scala)
var gse = new GroovyScriptEngine(pathList.toArray)
var scriptClass = gse.loadScriptByName(file.getName())
var i = scriptClass.newInstance().asInstanceOf[GroovyObject]
然后使用invokeMethod 调用groove 脚本类中的函数。无论如何,默认情况下是否有限制变量范围的函数?
【问题讨论】:
标签: variables groovy scope global local