Lua元表应用举例:配置表格转为Lua配置表

时间:2021-02-01 12:44:24   收藏:0   阅读:0

技术图片

student_info.xlsx内容

--[[ 列名称 备注
id  编号
name  姓名
age  年龄
]]

-- 列名称
local __key_map = 
{ 
    id = 1,
    name = 2,
    age = 3,   
}

-- string 常量
local __CS = 
{
    "张三",
    "李四",
    "王五",
} 

-- meta table
local mt = 
{ 
    __index = function(t, k) 
        if __key_map[k] == nil then
            return nil
        end
        return t[__key_map[k]]
    end
}

local cfg = {} 
cfg[1000]= setmetatable({ 1000, __CS[1], 15,}, mt) 
cfg[1001]= setmetatable({ 1001, __CS[2], 16,}, mt) 
cfg[1002]= setmetatable({ 1002, __CS[3], 15,}, mt) 

  测试打印王五的信息:

print(cfg[1002].id, cfg[1002].name, cfg[1002].age)

  运行结果如下:

技术图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!