function deepcopy( obj )
local intable = {};
local function func(obj)
if type(obj) ~= "table" then --判斷表中是否有表
return obj;
endlocal newtable = {}; --定義乙個新錶
intable[obj] = newtable; --若表中有表,則先把表給intable,再用newtable去接收內嵌的表
for k,v in pairs(obj) do --把舊表的key和value賦給新錶
newtable[func(k)] = func(v);
endreturn setmetatable(newtable, getmetatable(obj))--賦值元表
endreturn func(obj) --若表中有表,則把內嵌的表也複製了
endt1 =
t2 = deepcopy(t1); --深拷貝
t3 = t1; --淺拷貝
print(t1)
print(t2)
print(t3)
for i,v in pairs(t2) do
print(i,v);
end
lua中實現table的列印
剛學lua不久,導師布置的乙個作業,實現乙個能處理table的print evn lua 5.1 function prettystring for key,value in pairs doprettyonestring value endend function prettyonestring ...
lua中利用table表模擬switch
首先定義乙個表 switch 然後定義各個分支 switch 1 function end switch a function end 然後呼叫 switch var 記得後面的 不要忘記哦 o 我們這裡舉個簡單例子,把月份轉換成漢字形式 switch switch 1 function retur...
Lua中table的長度
官方文件是這麼描述 的 取長度操作符寫作一元操作 字串的長度是它的位元組數 就是以乙個字元乙個位元組計算的字串長度 table t 的長度被定義成乙個整數下標 n 它滿足 t n 不是nil而 t n 1 為nil 此外,如果 t 1 為nil,n 就可能是零。對於常規的陣列,裡面從 1 到 n 放...