gpt4 book ai didi

Lua 从字符串调用函数?

转载 作者:行者123 更新时间:2023-12-01 14:15:19 26 4
gpt4 key购买 nike

如何在 self 上通过 Lua 中的字符串调用函数名?

我尝试了类似问题 (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

这会导致以下错误。

scenes/CardsScene.lua:83: attempt to call a nil value

最佳答案

self 不是魔术。它只是一个局部变量,与任何其他 Lua 变量没有区别。

如果您想通过字符串名称获取全局函数,您可以使用该字符串访问全局表:_G[string_name]_G 不是魔法;这只是一张 table 。

就像self一样。因此,您可以执行完全相同的操作,以通过名称访问 self 的成员:self[string_name]。如果它表示一个函数,您可以使用函数调用语法调用它:self[string_name]()

关于Lua 从字符串调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36994784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com