在 lua 中调用带括号的冒号函数
Call colon function with brackets in lua
我已经研究了一段时间,但没有成功。我想像调用常规函数一样在 lua 中动态调用冒号函数。
obj['functionName']()
但是以下将不起作用。
obj:['functionName']()
有解决办法吗?我是否必须显式地将 obj 添加到函数参数中?我宁愿不做以下事情,除非我必须......即:
obj['functionName'](obj)
谢谢!
你可以使用obj:functionName()
,但是如果"dynamically"你的意思是functionName
存储在一个变量中,那么fn = 'functionName'; obj[fn](obj)
是唯一的方法。
"obj:function()" 语法(如 lua 文档中所定义)"syntactical sugar" 用于 obj.function(obj),所以不,没有办法绕过它。语法糖针对的是一种非常特殊的情况。
我已经研究了一段时间,但没有成功。我想像调用常规函数一样在 lua 中动态调用冒号函数。
obj['functionName']()
但是以下将不起作用。
obj:['functionName']()
有解决办法吗?我是否必须显式地将 obj 添加到函数参数中?我宁愿不做以下事情,除非我必须......即:
obj['functionName'](obj)
谢谢!
你可以使用obj:functionName()
,但是如果"dynamically"你的意思是functionName
存储在一个变量中,那么fn = 'functionName'; obj[fn](obj)
是唯一的方法。
"obj:function()" 语法(如 lua 文档中所定义)"syntactical sugar" 用于 obj.function(obj),所以不,没有办法绕过它。语法糖针对的是一种非常特殊的情况。