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