LUA函数参数传递问题

cocos2d-x 专栏收录该内容
24 篇文章 0 订阅

 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

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值