加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua层次结构字符串到表

发布时间:2020-12-15 00:16:25 所属栏目:大数据 来源:网络整理
导读:有没有办法可以将层次结构字符串转换为表格形式? 假设输入是A.B.C.D. 输出应该是一个遍历输入的表: A = {} A.B = {} A.B.C = {} A.B.C.D = {} 谢谢. 解决方法 显而易见的解决方案是解析字符串并从中构造层次结构表.但更聪明的解决方案是让lua为你做.通过一
有没有办法可以将层次结构字符串转换为表格形式?

假设输入是A.B.C.D.

输出应该是一个遍历输入的表:
A = {}
A.B = {}
A.B.C = {}
A.B.C.D = {}

谢谢.

解决方法

显而易见的解决方案是解析字符串并从中构造层次结构表.但更聪明的解决方案是让lua为你做.通过一些metamagic和函数环境操作,可以完成:
dump = require 'pl.pretty'.dump -- convenient table dumper from penlight

function createtable(str)
  local env_mt = {}
  env_mt.__index = function(t,k)
                     rawset(t,k,setmetatable({},env_mt))
                     return rawget(t,k)
                   end
  local env = setmetatable({},env_mt)
  local f = loadstring("return "..str)
  setfenv(f,env)
  f()
  return env
end

dump( createtable "A.B.C.D" )

这个输出:

{
  A = {
    B = {
      C = {
        D = {
        }
      }
    }
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读