关于Lua中的变量赋值

本文详细探讨了 Lua 语言中表(table)赋值实际上是引用行为,对表的操作会影响到原始表。通过示例代码展示了当一个table被赋值给另一个变量时,修改新变量会影响原table。同时,文章还解释了 Lua 中的基本变量赋值是值传递,不会影响原变量。最后,通过测试代码进一步验证了这些概念。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值