使用 Lua 中的键执行表值函数

我正在尝试使用 Lua 中仅有的数据结构 - 表格,制作菜单系统。我有两个菜单:connectionmenu 和 mainmenu。

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

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

function changemenu(menu)
    currentmenu = menu
end

connectionmenu = {"连接菜单标题"};
mainmenu = {"主菜单标题"}
currentmenu = connectionmenu

connectionmenu["连接菜单"] = changemenu(mainmenu)
mainmenu["主菜单"] = "测试值"

现在,我要如何执行 connectionmenu["连接菜单"] 的函数?

我已经尝试过:

return [currentmenu["连接菜单"]]

但没有成功。

点赞
用户8201190
用户8201190

首先,您需要将函数作为表的一部分:

connectionmenu = {
    "在这里输入标题",
    func = function (firstarg, secondarg)
        -- 函数体在这里
    end
}

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

currentmenu.func(firstarg, secondarg)
2017-09-08 18:39:38
用户7556173
用户7556173

我不理解你的意思。由于我无法添加评论,我将给出一些建议。

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

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

connectionmenu["Connection Menu"] = changemenu

然后,执行函数:

return currentmenu["Connection Menu"]();

希望这对你有用。

2017-09-09 01:48:34