「Luaでディープコピーをする」の版間の差分

imported>Administrator
ページの作成:「Luaディープコピーがしたい。 再帰を使ったディープコピー。 <source lang="lua"> function deepcopy(orig) local orig_type = type(...」
 
imported>Administrator
編集の要約なし
 
7行目: 7行目:
     local copy
     local copy
     if orig_type == 'table' then
     if orig_type == 'table' then
        -- tableなら再帰でコピー
         copy = {}
         copy = {}
         for orig_key, orig_value in next, orig, nil do
         for orig_key, orig_value in next, orig, nil do
12行目: 13行目:
         end
         end
         setmetatable(copy, deepcopy(getmetatable(orig)))
         setmetatable(copy, deepcopy(getmetatable(orig)))
     else -- number, string, boolean, etc
     else
        -- number, string, booleanなどはそのままコピー
         copy = orig
         copy = orig
     end
     end