在Lua中使用键具有表值执行功能

时间:2017-09-08 15:45:09

标签: lua

我正在尝试使用唯一可用的数据结构在Lua中创建一个菜单系统:tables。我有两个菜单:connectionmenu和mainmenu。

我希望能够在菜单之间切换。例如,从mainmenu,转到connectionmenu,然后它将成为显示的当前菜单。

这是我的代码:请注意,我正在使用一个名为onelua的库来显示菜单,但我的问题与核心lua和表格直接相关。

function changemenu(menu)
    currentmenu = menu
end

connectionmenu = {"Connection Menu Title"};
mainmenu = {"Main Menu Title"}
currentmenu = connectionmenu

connectionmenu["Connection Menu"] = changemenu(mainmenu)
mainmenu["Main Menu"] = "test value"

现在如何执行连接菜单[“连接菜单”]的功能?

我试过了:

return [currentmenu["Connection Menu"]]

无济于事。

2 个答案:

答案 0 :(得分:1)

首先,您需要将您的功能作为表格的一部分:

connectionmenu = {
    "Title Here",
    func = function (firstarg, secondarg)
        -- Function body here
    end
}

然后,您可以通过调用表的func方法来运行该函数:

currentmenu.func(firstarg, secondarg)

答案 1 :(得分:1)

我不明白你的意思。因为我不能添加评论,我会给你一些建议。

首先,如果你想在菜单中添加一个功能(connectionmenu或mainmenu),你就可以像在楼上一样。

其次,如果你想执行changemenu函数。你需要给元素赋值函数,而不是函数的返回值。你可以像这样修改:

connectionmenu["Connection Menu"] = changemenu

并执行以下功能:

return currentmenu["Connection Menu"]();

我希望它对你有用。

相关问题