Все переменные кажутся глобальными в моих скриптах groovy, которые я запускаю на движке скриптов groovy. Я создал классный класс, но когда я создаю переменные, к ним можно получить доступ откуда угодно. для примера.
class test{
void func1{ a=4 }
void func2{ print(a) }
}
Когда я вызываю эту функцию класса func1 из scala, затем вызываю func2, это приводит к «4». Странно то, что если я объявляю переменные типа «def a = 0» в функции, область действия переменной будет ограничена в функции.
Я загружаю свои скрипты Groovy из GroovyScriptEngine следующим образом (используя scala)
var gse = new GroovyScriptEngine(pathList.toArray)
var scriptClass = gse.loadScriptByName(file.getName())
var i = scriptClass.newInstance().asInstanceOf[GroovyObject]
затем используя invokeMethod для вызова функций в классе сценария groove. В любом случае можно ли по умолчанию ограничивать переменные области действия в функциях?