几个table相关函数独立成TABLE模块
This commit is contained in:
45
Zframework/tableExtend.lua
Normal file
45
Zframework/tableExtend.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
local type=type
|
||||
local TABLE={}
|
||||
function TABLE.shift(org)
|
||||
local L={}
|
||||
for i=1,#org do
|
||||
if type(org[i])~="table"then
|
||||
L[i]=org[i]
|
||||
else
|
||||
L[i]=TABLE.shift(org[i])
|
||||
end
|
||||
end
|
||||
return L
|
||||
end
|
||||
function TABLE.copy(org)
|
||||
local L={}
|
||||
for k,v in next,org do
|
||||
if type(v)~="table"then
|
||||
L[k]=v
|
||||
else
|
||||
L[k]=TABLE.copy(v)
|
||||
end
|
||||
end
|
||||
return L
|
||||
end
|
||||
function TABLE.add(G,base)--For all things in G if same type in base, push to base
|
||||
for k,v in next,G do
|
||||
if type(v)==type(base[k])then
|
||||
if type(v)=="table"then
|
||||
TABLE.add(v,base[k])
|
||||
else
|
||||
base[k]=v
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function TABLE.complete(G,base)--For all things in G if no val in base, push to base
|
||||
for k,v in next,G do
|
||||
if base[k]==nil then
|
||||
base[k]=v
|
||||
elseif type(v)=="table"and type(base[k])=="table"then
|
||||
TABLE.complete(v,base[k])
|
||||
end
|
||||
end
|
||||
end
|
||||
return TABLE
|
||||
Reference in New Issue
Block a user