「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, | else | ||
-- number, string, booleanなどはそのままコピー | |||
copy = orig | copy = orig | ||
end | end | ||