【发布时间】: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