lua踩坑系列之浅拷贝与深拷贝
Posted 爱上游戏开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua踩坑系列之浅拷贝与深拷贝相关的知识,希望对你有一定的参考价值。
每日一荤
剪发去了,洗头小妹,给我系上围布,看到我的表情,唬了她一跳,大,大哥,你眼睛好大哦!我说妹子,不是哥眼睛大,你再勒紧点,我还能把舌头吐出来!
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/5e621b7ae7474a7da316971f7b284a68.jpg)
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/9f45fd57402d4281b1f4469939c48cf5.jpg)
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/5e621b7ae7474a7da316971f7b284a68.jpg)
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/5e621b7ae7474a7da316971f7b284a68.jpg)
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/9f45fd57402d4281b1f4469939c48cf5.jpg)
1
拷贝对象为string、number、boolean等基础类型时,拷贝的过程是进行复制粘贴。创建一个新的对象,拷贝出来的新对象和原来的对象互不影响,互不干涉,所以修改拷贝出来的对象的值不会影响到原来的对象的值!
local value_A=10
local value_B=value_A
print("A的值:"..value_A)
print("B的值:"..value_B)
value_B=5
print("A的值:"..value_A)
print("B的值:"..value_B)
A的值:10
B的值:10
A的值:10
B的值:5
2
拷贝对象的类型为table,拷贝出来的对象和拷贝前的实际上是同一个对象,占同一个内存,简单点说就是一个人的两个名字。如果改变了拷贝出来对象的值,原对象也会随之改变。
local tab={}
tab["csdn"]="懒人下蛋"
tab["抖音"]="shirln"
tab["微信公众号"]="懒人下蛋"
tab["QQ群"]="704621321"
for k,v in pairs(tab) do
print(k.."对应的账号:"..v)
end
local temp=tab
temp["csdn"]="爱上游戏开发"
temp["微信公众号"]="爱上游戏开发"
for k,v in pairs(tab) do
print("拷贝前的对象:"..k.."对应的账号:"..v)
end
for k,v in pairs(temp) do
print("拷贝后的对象:"..k.."对应的账号:"..v)
end
csdn对应的账号:懒人下蛋
QQ群对应的账号:704621321
微信公众号对应的账号:懒人下蛋
抖音对应的账号:shirln
拷贝前的对象:csdn对应的账号:爱上游戏开发
拷贝前的对象:QQ群对应的账号:704621321
拷贝前的对象:微信公众号对应的账号:爱上游戏开发
拷贝前的对象:抖音对应的账号:shirln
拷贝后的对象:csdn对应的账号:爱上游戏开发
拷贝后的对象:QQ群对应的账号:704621321
拷贝后的对象:微信公众号对应的账号:爱上游戏开发
拷贝后的对象:抖音对应的账号:shirln
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/5e621b7ae7474a7da316971f7b284a68.jpg)
![lua踩坑系列之浅拷贝与深拷贝](https://image.cha138.com/20210410/9f45fd57402d4281b1f4469939c48cf5.jpg)
function clone(master)
local temp = {}
for k, v in pairs(master) do
if type(v) == "table" then
temp[k] = clone(v)
else
temp[k] = v
end
end
return temp
end
local tab={}
tab["csdn"]="爱上游戏开发"
tab["抖音"]="shirln"
tab["微信公众号"]="爱上游戏开发"
tab["QQ群"]="704621321"
local temp=clone(tab)
prring(temp)
输出结果:
704621321
shirln
爱上游戏开发
爱上游戏开
不要去等明天,不要去相信永远,你所能做的,就是眼前。你所爱,为尔所为。没有人会等你,在这风雨飘摇的人生路上。你所能做的,就是让自己更快、更强。
-————每日鸡汤
长按识别
关注懒人下蛋
以上是关于lua踩坑系列之浅拷贝与深拷贝的主要内容,如果未能解决你的问题,请参考以下文章