码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-02-01 12:44:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:alt   ima   table   tab   ble   展示   http   local   内容   

  • 把配置表格.xlsx数据转为Lua配置表,其实就是把表格数据用Lua写一遍,这里的实现重点就是setmetatable设置元表。
  • 以下以表格student_info.xlsx举例,展示对应Lua配置表内容:
    • 表格内容:

技术图片

student_info.xlsx内容

    • 对应Lua配置表起名为student_info.lua,内容如下。姓名name考虑到以后有重复的可能,所以单独建了一个表__CS存储。
--[[ 列名称 备注
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)

  运行结果如下:

技术图片

 

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

标签:alt   ima   table   tab   ble   展示   http   local   内容   

原文地址:https://www.cnblogs.com/caiger-blog/p/14352136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!