有没有办法可以将层次结构字符串转换为表格形式? 假设输入是A.B.C.D. 输出应该是一个遍历输入的表: A = {} A.B = {} A.B.C = {} A.B.C.D = {} 谢谢. 显而易见的解决方案是解析字符串并从中构
假设输入是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 = {
}
}
}
}
}
