Lua 从io.read()执行用户输入
所以我有一个Lua代码,在一个文件中有一堆不同的函数(因为多个脚本使用它们),我希望其中一个能够根据用户输入执行其中的一些函数。因此,如果用户输入addUser()(我的函数之一),那么代码将运行addUser()。现在,我知道你可以这样做Lua 从io.read()执行用户输入,lua,Lua,所以我有一个Lua代码,在一个文件中有一堆不同的函数(因为多个脚本使用它们),我希望其中一个能够根据用户输入执行其中的一些函数。因此,如果用户输入addUser()(我的函数之一),那么代码将运行addUser()。现在,我知道你可以这样做 var = io.read() if var == (some function) then (function) else if var == (some other function) then
var = io.read()
if var == (some function) then
(function)
else
if var == (some other function) then
等等
但是我想要一种更简单的方法。让用户只输入函数名,然后执行
var = io.read()
if _G[var]~=nil then _G[var]() end
如果要允许foo()
,请使用
var = var:gsub("[%s()]","")
刚刚读完。谢谢。那很好用。我只是想做一个记录(因为我没有真正了解这部分内容,可能是因为我有点累了),io.read()中的插补只是函数名。因此,如果函数是
bla()
,那么输入应该是bla
,我宁愿测试type(_G[var])==“function”
,而不只是nil
,如果你正在进行检查。@OlegV.Volkov,如果设置调用元方法,表和用户数据的行为可能类似于函数。是否有人知道它们是我关闭问题并将其标记为已回答的一种方式,这样就不会得到更多的答复?@OlegV.Volkov鉴于我在程序中使用了其他变量,这是一个非常好的主意。不这样做可能会导致正常变量作为函数调用。谢谢