【问题标题】:can I index a lua array with other than an integer我可以用整数以外的方式索引 lua 数组吗
【发布时间】:2011-02-21 10:13:46
【问题描述】:

使用元表(或字符串)作为数组的索引是否合法。下面的代码(它没有做太多)似乎允许它。我已经在手册/互联网等中进行了搜索,但找不到这是否是合法的语法,或者它恰好可以工作。如果有人能确认这是合法的,我将不胜感激。

(顺便说一句,如果它是合法的,它使我能够使用元表索引数组,这提供了相当多的功能。例如,一个多值键元表来索引一个 db 表等等)

x = { val = 3 }      -- our object

mt = {
    __index = function (table, key)
        print(key)
        return table.val
    end,
    __newindex = function (t,k,v)
        print(k)
        t.val = v
      end
    }

setmetatable(x, mt)


print(x[1])
print({1,2})
x["hello"] = 4
print(x[1])

【问题讨论】:

    标签: lua


    【解决方案1】:

    "类型表实现关联 数组,即可以是数组 不仅用数字索引,而且 任何值(nil 除外)。” http://www.lua.org/manual/5.1/manual.html#2.2

    【讨论】:

    • 谢谢,太强大了,越用lua越觉得哇!
    猜你喜欢
    • 2014-01-13
    • 2016-09-01
    • 2011-05-02
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多