[Lua]table(一):打印与复制

一.打印table

 function PrintTable(tb)
if type(tb) ~= "table" then
print(tb)
return
end local level =
local content = "" local function GetSpace(level)
local spaceStr = ""
for i=,level do
spaceStr = spaceStr .. " "
end
return spaceStr
end local function GetString(value)
if type(value) ~= "string" then
return tostring(value)
else
return "\"" .. tostring(value) .. "\""
end
end local function PrintTb(tb, level)
level = level + for k,v in pairs(tb) do
if type(k) == "table" then
content = content .. "\n" .. GetSpace(level) .. "{"
PrintTb(k, level)
content = content .. "\n" .. GetSpace(level) .. "} = "
else
content = content .. "\n" .. GetSpace(level) .. GetString(k) .. " = "
end if type(v) == "table" then
content = content .. "{"
PrintTb(v, level)
content = content .. "\n" .. GetSpace(level) .. "}"
else
content = content .. GetString(v)
end
end
end PrintTb(tb, level)
print("{" .. content .. "\n}")
end

测试1(嵌套table):文章来源地址https://www.yii666.com/article/758208.html

 local x =
{
{
a = {
b =
},
"asd",
},
"",
{
["c"] = ,
[] = ,
},
}

输出:文章来源地址:https://www.yii666.com/article/758208.html

[Lua]table(一):打印与复制

测试2(key和value都是table):文章地址https://www.yii666.com/article/758208.html

 local a = {, [] = , ""}
local b = {a1 = "a1"}
local c = {}
c[a] =
c[b] = {b1 = }

输出:网址:yii666.com

[Lua]table(一):打印与复制

二.复制table

 function CloneTable(tb)
local clonedTable = {} --记录复制过的table,防止无限递归
local function CloneTb(tb)
if type(tb) ~= "table" then
return tb
elseif clonedTable[tb] then
return clonedTable[tb]
end local newTb = {}
clonedTable[tb] = newTb
for key,value in pairs(tb) do
newTb[CloneTb(key)] = CloneTb(value)
end
return setmetatable(newTb, getmetatable(tb))
end
return CloneTb(tb)
end

测试:

 local a = {, {a1 = "a1"}}
local b = CloneTable(a)
a[] = ""
a[].a1 =
b[] = ""
PrintTable(a)
PrintTable(b)

输出:网址:yii666.com<

[Lua]table(一):打印与复制

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

[Lua]table(一):打印与复制-相关文章

  1. Android Clipboard(复制/剪贴板)

  2. 学习了clipboard复制剪切插件的使用

  3. lua 复制table

  4. jQuery复制table header到表格的最下面

  5. [Lua]table(一):打印与复制

  6. 使用LayUI展示数据

    LayUI是一款免费,开源,轻量级的前端cms框架,适用于企业后端,能快速上手开发,集成了常用的组件,还有完善的文档和社区。点击查看 文档地址 下载框架使用:1.把这个5个文件项都拷贝到项目中2.到layui官网 地址 将后台布局的代码考过来,做一个左侧导航,右侧显示主内

  7. 在layui中,新的页面怎么获取另一个页面传过来的数据,并可以对数据进行判断,layui中的后台分页(table)。

    例如:打开一个新页面的同时,传数据。layer.open({ type: 2, title: \\\'新增项目\\\', shadeClose: false, shade: [0.3], maxmin: true, //开启最大化最小化按钮 area: [\\\'900px\\\', \\\'90%\\\'], scrollbar: false, //屏蔽滚动条 content: \\\'operate.html?type=addbuildingId=\\\' + buildingId + \\\'businessId=\\\' + businessId});==================================

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png