String 从字符串变量调用非全局函数
正如预期的那样,此代码:String 从字符串变量调用非全局函数,string,lua,lua-table,String,Lua,Lua Table,正如预期的那样,此代码: s = "bar" bar = function() print(s) end _G[s]() 产出: 酒吧 但要么是: s = "bar" foo = { bar = function() print(s) end, _G["foo." .. s]() } 或者这个: s = "bar" foo = { bar = function() print(s) end } _G["foo." .. s]() 产出: 尝试调用字段“?”(一个空值
s = "bar"
bar = function() print(s) end
_G[s]()
产出:
酒吧
但要么是:
s = "bar"
foo = {
bar = function() print(s) end,
_G["foo." .. s]()
}
或者这个:
s = "bar"
foo = {
bar = function() print(s) end
}
_G["foo." .. s]()
产出:
尝试调用字段“?”(一个空值)堆栈回溯:
test.lua:4:在主块中
[C] : 如何从字符串变量调用非全局函数
s = "bar"
foo = {
bar = function() print(s) end
}
_G["foo." .. s]()
最后一种方法不起作用,因为没有这样的表“foo.bar”
,而是表foo
中的字段“bar”
。所以你可以这样称呼它:
_G.foo[s]()
或者简单地说:
foo[s]()