Lua 函数,变参


语法: function func-name (arguments-list)
               func-part
       end
调用方法:func-name(arguments--list) 其中当参数是表构造或字符串时()可省略。
          另外,实参与形参之匹配与多值赋值时的变量与值的匹配类似,多了忽略,不足补nil。
多返回值:return + 返回值列表即可返回多个值。
          当函数多返回值用在函数调用参数、赋值语句、表构造时遵循以下原则:若函数调用为最后一个参数
          或仅有的参数则返回尽可能多的值,否则只返回一个值。
          另外可以在函数调用外加括号,强制函数只返回一个值,如(a()),则不管函数a本来应该返回几
          个值,现在都只返回一个值。一个return如果将返回值用()括起来,则也只返回一个值。(这个不
          知怎么理解,验证时编译报错)
          最后一个多值返回的特殊函数,unpack()接受一个数组作为参数,返回数组的所有元素。(这里所
          谓数组是指,table中所有从1开始的元素,其他元素都不会返回。即通过a[1]这种形式引用的元素,
          而且若自己指定一个下标,若从1开始下标递增中a[i]=nil,则以后的元素都不再返回。)
可变参数:function func-name(arg1,arg2,...)
                 func-part
          end
          前面arg1、arg2为固定参数,可以有0到多个。lua会将后面的不定参数放在一个名为arg的table中,
          同时还会产生一个域n=i,i为不定参数个数。表arg可在函数内使用。
命名参数:当有多个参数,参数顺序会难以记清。此时可以将函数设计为传table进去,这样通过table.key引用
          即可保证顺序不会传错。例如,rename(oldname,newname),若设计为
          rename(a){rename(a.old,a.new)},则我们不必记下参数顺序,只要穿个一个包含old和new 的
          table就可以了,并保证结果总是我们想要的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值