【发布时间】:2014-01-31 12:31:40
【问题描述】:
我有一个看起来像这样的模块。我已经大大简化了它,以免弄乱我的问题(我的本地函数比这更复杂)。这是我的代码:
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),那么我的代码就不起作用了。
有没有办法完成我所追求的?
【问题讨论】:
-
您可能希望将
decision和其他函数设为本地。
标签: oop lua namespaces private public