【问题标题】:Can not change value of "global" lua table无法更改“全局”lua 表的值
【发布时间】:2011-07-05 00:49:30
【问题描述】:

我有一个 .lua 脚本文件,但我遇到了类似的问题:

myTable = {}

function changeMyTable(index,value){
    myTable[index] = value
    --When I output the size of #myTable now I receive 1 as result...
}

function checkMyTableSize(){
    --when i output #myTable here. I receive 0 as result
}

有人知道如何在全局“myTable”表上创建索引吗?

我也尝试过使用 table.insert(myTable,index,value)。

【问题讨论】:

  • 可能的错字:在 lua 中,函数的定义如下:function() ... end,而不是这样:function(){ ... }(将括号替换为“end”结束)

标签: lua lua-table


【解决方案1】:

--当我现在输出#myTable 的大小时,我收到 1 作为结果...

这应该index 值恰好为 1 时发生。否则不会。 # 运算符仅计算表中作为数组值的值的数量,并计入第一个 NIL。所以它检查 table[1],然后是 table[2],然后......直到它达到 NIL。它会返回它。

请注意,这是对其背后概念的解释。实现可能不会那样循环。

无论如何,您的不一致可能是由于多次运行脚本而不是多次调用全局函数。

【讨论】:

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