我有一个 Lua 脚本,它提供了一个交互式文本菜单,用于在实际工作之前配置脚本。有一个main_menu()
函数,它有用户可以选择的选项,每个选项调用一个不同的submenu()
函数。这些不同的submenu()
函数中的每一个都做他们的事情,然后他们回到(他们调用)这个main_menu()
函数。最后,每个函数都有一个参数settings
传递给它,这是一个设置表。
事情看起来像这样:
local function submenu(settings)
-- Get user input & change a settings{} table key accordingly
main_menu(settings)
end
local function main_menu(settings)
-- Present choices & get user input
submenu(settings)
end
local settings={}
settings["foo"] = "bar"
main_menu(settings)
问题是attempt to call nil
每当(据我所知)一个函数调用稍后在脚本中定义的另一个函数时,我都会遇到错误。所以如果像上面的例子一样,我定义submenu()
然后, 调用没有问题main_menu()
,但不能调用。main_menu()
submenu()
submenu()
main_menu()
FWIW,这是在 Minecraft 的 ComputerCraft mod 中完成的。