• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua 函数基础

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

函数定义在前,调用在后

如果函数只有一个实参,并且此参数是一个字面字符串或者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"})

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
打印Lua的Table对象发布时间:2022-07-22
下一篇:
Lua 笔记10发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap