【问题标题】:Is it possible to call a function from the standard library if it has been overridden?如果已被覆盖,是否可以从标准库中调用函数?
【发布时间】:2018-06-29 05:54:34
【问题描述】:

Lua 具有各种用于操作表格的函数,例如table.insert()。但是如果这个词被覆盖了呢?

例如:

function (table)
end

table 的值是传递的任何值,我不能再使用以前可以通过全局 table 访问器访问的标准库的表函数。

【问题讨论】:

  • 呃,不要这样命名你的参数? :) 如果你真的想要,你需要在函数体之外用另一个名字保存这些值,即local TABLE_LIBRARY= table

标签: lua


【解决方案1】:

您应该能够通过全局表 _G 访问全局变量,因此在这种情况下,您只需使用 _G.table 访问全局 table 对象而不是阴影函数参数。

【讨论】:

【解决方案2】:

谁覆盖了table 变量?如果你,那么首先将原来的table 设置为不同的变量:

luaTable = table

然后,重新分配:

table = somethingElse

然后您可以访问原始的table 函数:

luaTable.insert()

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多