【问题标题】:Call colon function with brackets in lua在lua中用括号调用冒号函数
【发布时间】:2017-06-16 22:47:36
【问题描述】:

我已经研究了一段时间,但没有运气。我想像做常规函数一样在lua中动态调用冒号函数。

obj['functionName']()

但是以下方法不起作用。

obj:['functionName']()

有解决办法吗?我是否必须将 obj 显式添加到函数参数中?我宁愿不做以下事情,除非我必须......即:

obj['functionName'](obj)

谢谢!

【问题讨论】:

  • 您可能指的是冒号 (:) 而不是分号 (;)。

标签: lua coronasdk


【解决方案1】:

您可以使用obj:functionName(),但如果“动态”是指functionName 存储在变量中,那么fn = 'functionName'; obj[fn](obj) 是唯一的方法。

【讨论】:

  • 你的意思可能是obj.functionName(obj)。
  • 我的意思是obj:functionName(),因为OP希望避免两次指定obj;谢谢@lhf!
【解决方案2】:

“obj:function()”语法是(如 lua 文档中定义的)obj.function(obj) 的“语法糖”,所以不,没有办法绕过它。语法糖是针对一个非常具体的情况。

【讨论】:

    猜你喜欢
    • 2015-11-11
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多