lua 递归遍历table所有元素
参考:Lua数据文件与序列持久化_昔拉天使的博客-CSDN博客_lua 序列化
--~ package.path= string.gsub( package.path , 'LuaBin',rootPath) if output~=nil then output:ClearAll() end package.cpath=";.\\?.dll;\ .\\?51.dll;\ F:\\Program Files\\Lua\\5.1\\?.dll;\ F:\\Program Files\\Lua\\5.1\\?51.dll;\ F:\\Program Files\\Lua\\5.1\\clibs\\?.dll;\ F:\\Program Files\\Lua\\5.1\\clibs\\?51.dll;\ F:\\Program Files\\Lua\\5.1\\loadall.dll;\ F:\\Program Files\\Lua\\5.1\\clibs\\loadall.dll;" package.path= ";.\\?.lua;\ F:\\Program Files\\Lua\\5.1\\lua\\?.lua;\ F:\\Program Files\\Lua\\5.1\\lua\\?\\init.lua;\ F:\\Program Files\\Lua\\5.1\\?.lua;\ F:\\Program Files\\Lua\\5.1\\?\\init.lua;\ F:\\Program Files\\Lua\\5.1\\lua\\?.luac;" --~ output: ClearAll( ) package.path= string.gsub( package.path , '\n',"") package.cpath= string.gsub(package.cpath , '\n',"") function aryTostr(...) local rst='' for i ,k in pairs (...) do rst=rst..'.'..k end return rst end function aryContStr( stack , needlexd) for i,k in pairs(stack) do local tmp=string.find(k,needlexd ) if tmp~=nil then return true end end return nil end function travTab_Process( key0 , val_X ) if type(val_X)~='table' then return end if heapXX[key0] then return end if heapXX[key0]==nil then heapXX[key0]=val_X for i,k in pairs(val_X) do if type(k)=='table' then table.insert(address , i) print(aryTostr(address) ) --~ print(' ',i,k) travTab_Process(i,k ) table.remove(address) end print(' ',i,k) end return end return end function travTab(key_init , val_init ) address={key_init} heapXX={} if type(val_X)~='table' then print( key_init) travTab_Process( key_init, val_init) end return end --~ require'pl' --~ require'std' --~ require'iuplua' --~ require 'socket' travTab( '_G',_G) print("over: ",os.time() )
浙公网安备 33010602011771号