正如所料,这段代码:
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]中:?
如何从字符串变量调用非全局函数?
1 回答
最后一个方法不起作用,因为没有这样的表
"foo.bar"
,而是表foo
中的字段"bar"
. 所以你可以这样称呼它:或者干脆: