다음과 같은 모듈이 있습니다. 내 질문을 혼란스럽게하지 않도록 크게 단순화했다. (내 로컬 함수는 이것보다 복잡하다.) 여기 내 코드는 다음과 같습니다.동적으로 로컬 함수를 호출 할 수 있습니까?
decision = {}
function win(win_arg) return win_arg end
function lose(lose_arg) return lose_arg end
local function draw(draw_arg) return draw_arg end
function decision.get_decision(func, arg)
return func(arg)
end
return decision
아래 코드를 사용하여 모듈을 호출합니다.
my = require "my-lua-script"
print(my.get_decision(lose, "I lose."))
print(my.get_decision(win, "I win."))
'get_decision'을 공용 메소드로 지정합니다. win
, lose
및 draw
을 비공개로하고 싶지만 get_decision
에서 동적으로 호출하고 싶습니다. 올바르게 이해한다면 win
및 lose
은 현재 글로벌 네임 스페이스에 있습니까? 이 두 메서드 앞에 local
을 넣으면 (예 : draw
) 코드가 작동하지 않습니다.
내가 수행 한 작업을 수행 할 수있는 방법이 있습니까?
아마도'결정'과 다른 기능을 로컬로 만들고 싶을 것입니다. – lhf