LUA函数参数传递问题

本文探讨了Lua语言中不同类型变量的比较方式及其作为函数参数时的传递机制。通过具体示例说明基本类型按值传递,复合类型按引用传递的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 lua中通过值比较Boolean,String,Number类型的值,而通过引用比较Table,function,userdate类型的值。

               a = {}; a.x = 1; a.y = 0 
               b = {}; b.x = 1; b.y = 0 
               c = a 
               a==c but a~=b

当变量作为函数的参数进行传递时,(我的理解)类似的也是boolean,string,number类型的变量进行值传递。而table,function,userdata类型的变量进行引用传递。

Window={}
Window.new=function (o) o[1]=2*o[1] return o end
table1={10,20,30}
table2=Window.new(table1)      --》table1={20,20,30},table2=table1
print(table1[1],table2[1])      --> 20    20
table3=Window.new(table1)   -->table1={40,20,30} 
print(table1[1],table2[1],table3[1])    -->40    40     40
table1[1]=nil
print(table1[1],table2[1],table3[1])     --->nil   nil  nil
function double(a) a=a*2 return a end
num1=10;
num2=double(num1)
num3=double(num1)
print(num1,num2,num3)     ---->10    20    20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值