编辑代码

-- 定义一个表来表示数组
local array = {}
 
-- 初始化数组大小
local size = 0
 
-- 定义元表
local mt = {
  __index = function(t, k)
    -- 当尝试访问不存在的索引时,返回nil
    local v = rawget(t, k)
    if v == nil then
        return "666"
    end
   
    return v
  end,
 
  __newindex = function(t, k, v)
    rawset(t, k, v)
  end
}
 
-- 设置元表
setmetatable(array, mt)
 
-- 使用数组
array[1] = "Hello"
array[2] = "World"
 
-- 访问数组
print(array[1])  -- 输出: Hello
print(array[2])  -- 输出: World
print(array[3])  -- 输出: nil