1.lua中表table的赋值实质为引用
lua代码举例如下
local TabA = {["a"] = 1,["b"] = 2}
local TabB = TabA--将TabA赋值给TabB
print(TabA.a)
print(TabB.a)
TabB.a = 5--此处对表TabB进行操作
print(TabA.a)
print(TabB.a)
print("~~~~~~~~~~~~~~~~~~~~~~~~~")
local NumA = 1
local NumB = NumA
NumB = 5
print(NumA)
print(NumB)
lua代码运行结果如下!
可以看出在lua中,将table进行赋值其实是引用,进行任何操作都会影响到原来的table。
将临时变量进行赋值就是复制了一份,不会影响到原来的变量。
2.测试代码:
dataconfig_store = {}
local local_dataconfig_store = dataconfig_store
local_dataconfig_store[1] = { id = 1, name = "8钻石", name_zh = "8钻石"}
local a = dataconfig_store[1]
a.name = "aabb"
print(dataconfig_store[1].name)
lua代码运行的结果为 “aabb”,再次验证了 “将table进行赋值其实是引用,进行任何操作都会影响到原来的table”
3.Lua 对多个变量同时赋值,不会进行变量传递,仅做值传递。
测试代码:
a, b = 0, 1
a, b = a+1, a+1
print(a,b) --> 1 1
a, b = 0, 1
a, b = b+1, b+1
print(a,b) --> 2 2
a, b = 0, 1
a = a+1
b = a+1
print(a,b) --> 1 2
参考原文链接:https://blog.csdn.net/Qinhaifu/article/details/87913310