在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
函数定义在前,调用在后 如果函数只有一个实参,并且此参数是一个字面字符串或者table构造式,那么可以省略() 例如 print "hello" unpack{1,2} print [[ a multi line]] argument 与parameter对应实参多余形参,舍弃多余的实参 少于形参,赋值为nil 和多重赋值很像a,b=b,a,先计算右边,交换两个变量值 多重返回值运用到了多重赋值 function f() end--无返回值,但是也等于返回nil,占有一个位置 function f1() return "a" end --一个返回值 function f2() return "a","b" end --返回两个结果 多重返回值分为以下几种情况: 1.作为单独语句,丢弃所有返回值例如 f2() 2.作为表达式多个元素的非最后一个元素只保留第一个返回值 3.作为表达式最后一个元素或者仅有一个元素获得所有返回值
而表达式分为以下几种: 1.多重赋值x,y=f2(),"c"--x="a",y="c",只保留第一个"a" x,y=f2()--x="a",y="b",仅有一个元素 x,y,z="c",f2()--保留全部,因为是最后一个元素 x,y=f(),"c","d"--x=nil,y="c",因为无返回值也占用一个nil 2.函数调用传入实参列表函数调用作为最后一个实参,所有返回值传进去print(f2()) --a b 作为非最后一个参数,保留第一个print(f2(),"c") --a c 3.table构造式t={f2()} --所有的参数 t={f2(),"c"} a,c 4.return语句return f2() --返回所有 5.其他放在一个圆括号中,迫使只返回一个结果 print(( f2() )) f2()..1--返回a1 变长参数但变长参数中有nil的时候可以考虑select function _test(...) local count=select("#",...) for i=1,count do v=select(i,...)--注意用多重赋值只取第一个值 -- print(i,count,select(i,...)) print(i,v) end end _test(3,4, 5)
具名实参function rename(arg) print(arg.old,arg.new) end rename{old="temp.txt",new="temp1.txt"} rename({old="temp.txt",new="temp1.txt"})
|
请发表评论