2
在groovy脚本引擎上运行的groovy脚本中,所有变量似乎都是全局变量。我做了一些常规课,但是当我做变量时,可以从任何地方访问它们。例如。如何在Groovy脚本引擎中使用本地作用域变量?
class test{
void func1{ a=4 }
void func2{ print(a) }
}
当我从scala调用这个类函数func1然后调用func2,它会导致“4”。奇怪的是,如果我在函数中声明像“def a = 0”这样的变量,变量的作用域将被限制在函数中。
我加载我的Groovy脚本从的GroovyScriptEngine所示(使用斯卡拉)
var gse = new GroovyScriptEngine(pathList.toArray)
var scriptClass = gse.loadScriptByName(file.getName())
var i = scriptClass.newInstance().asInstanceOf[GroovyObject]
然后使用invokeMethod中调用的脚本槽类的功能。无论如何,默认情况下,变量作用域的功能是有限的吗?
谢谢你这是困扰我 – Elonoa 2012-03-05 04:38:15