
Lua::eval 함수를 사용하여 스크립트를 동적으로 실행할 때, 스크립트 내부의 변수를 외부에서 접근하도록 지정할 수 있는 방법은 두 가지가 있습니다.
1. upvalue: Lua::eval 함수에 `env` 매개변수를 지정하여 스크립트 내부의 변수를 외부의 변수와 연결할 수 있습니다. 예를 들어, 다음과 같이 `env` 매개변수를 지정하여 스크립트 내부의 변수를 외부의 변수와 연결할 수 있습니다.
#hostingforum.kr
lua
local env = {}
env.x = 10
local script = [[
function foo()
print(x)
end
]]
lua::eval(script, env)
env.foo()
2. global table: Lua::eval 함수에 `env` 매개변수를 지정하여 스크립트 내부의 변수를 외부의 변수와 연결할 수 있습니다. 예를 들어, 다음과 같이 `env` 매개변수를 지정하여 스크립트 내부의 변수를 외부의 변수와 연결할 수 있습니다.
#hostingforum.kr
lua
local env = {}
env.x = 10
local script = [[
function foo()
print(_G.x)
end
]]
lua::eval(script, env)
env.foo()
위의 예제에서 `_G`는 Lua의 global table을 나타냅니다. 스크립트 내부의 변수를 외부의 변수와 연결하기 위해 `_G`를 사용할 수 있습니다.
2025-03-09 18:55