如何在 Lua 上通过字符串调用函数名self?
我尝试了类似问题中描述的技术(lua call function from a string with function name),但是这只解决了全局表中存在的调用函数,或者通过模块;它不适用于self.
这是我正在尝试做的一个简化示例。
function CardsScene:onEnterFrame()
if self.transition_complete then
loadstring("self.basicMathInit")()
end
end
function CardsScene:basicMathInit()
print("Init has been called.")
end
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误。
scenes/CardsScene.lua:83: attempt to call a nil value
Run Code Online (Sandbox Code Playgroud)
self不是魔法。它只是一个局部变量,与任何其他 Lua 变量没有区别。
如果你想通过字符串名获得一个全球性的功能,您将与该字符串访问全局表:_G[string_name]。_G不是魔法;这只是一张桌子。
就像self. 因此,您将执行完全相同的操作来访问self按名称的成员:self[string_name]。如果代表一个功能,您将与函数调用语法调用它:self[string_name]()。
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |