zoukankan      html  css  js  c++  java
  • Lua元表应用举例:配置表格转为Lua配置表

    • 把配置表格.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) 

    return  cfg

      测试打印王五的信息(这里省略了require部分):

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

      运行结果如下:

  • 相关阅读:
    linux grep命令
    PHP 利用simplexml_load_file 读取XML对应的字段 然后存入mysql数据库
    php 设计模式之单类模式
    Mac C#开发工具Rider安利与环境配置教程
    模拟,贪心,枚举(二)
    模拟,贪心,枚举
    10.10 review
    review 10.9
    10.6 review
    9.28 review
  • 原文地址:https://www.cnblogs.com/caiger-blog/p/14352136.html
Copyright © 2011-2022 走看看