모든 변수는 Groovy 스크립트 엔진에서 실행되는 그루비 스크립트에서 전역 적으로 보입니다. 나는 Groovy 클래스를 만들었지 만, 변수를 만들면 모든 곳에서 액세스 할 수 있습니다. 용서를 위해.Groovy Script Engine에서 로컬 범위 변수를 사용하는 방법은 무엇입니까?
class test{
void func1{ a=4 }
void func2{ print(a) }
}
이 클래스 함수 func1을 scala에서 호출 한 다음 func2를 호출하면 "4"가됩니다. 이상하게도 함수에서 "def a = 0"과 같은 변수를 선언하면 변수의 범위가 함수에서 제한됩니다.
나는
var gse = new GroovyScriptEngine(pathList.toArray)
var scriptClass = gse.loadScriptByName(file.getName())
var i = scriptClass.newInstance().asInstanceOf[GroovyObject]
다음 홈 스크립트 클래스의 함수를 호출 할 invokeMethod를 사용하여이 (사용 스칼라)처럼 Groovy 스크립트에서 내 그루비 스크립트를로드하고 있습니다. 변수 범위를 기본적으로 함수에서 제한하도록 만들 수 있습니까?
에 해당 – Elonoa