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

Lua笔记5

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
2. 函数参数的执行行为,举例:function f (a, b) print(a, b) end
f () --> nil nil 
f(3) --> 3 nil 
f(3, 4) --> 3 4 
f(3, 4, 5) --> 3 4 ( 5被丢弃)
3. 函数默认函数写法,举例:调用incCount(),默认加1操作。
function incCount(n)
    n = n or 1
    globalCounter = globalCounter + n
end
4. 函数可变长参数...(可变长参数表达式),其行为类似于 一个具有多个返回值的函数。举例:
function foo ( ... ) 
local a,b,c = ...
当和固定参数混用,可变参数要放在固定参数之后。
5. 函数table.unpack与函数table.pack的功能相反。pack把参数列表转换成Lua语言中一个真实的列表(一个表),而unpack则把Lua语言中的
真实的列表(一个表)转换成一组返回值,进而可以作为另一个函数的参数被使用。例如:a,b = table.unpack{10,20,30} -- a=10, b=20, 30被丢弃
6. 尾调用不会使用栈空间,举例(正确的尾递归):支持任意数字作为参数,不会发生溢出。
function foo (n) 
    if n > 0 then return foo(n - 1) end
end 
7. 尾调用判断:在调用之后是否进行其他工作。举例:
return g(x) + 1 -- 必须进行为口法 不是尾调用
return x or g(x) -- 必须把返回值限制为1个 不是尾调用
return (g(x)) -- 必须把返回值限制为1个 不是尾调用
return x[i].foo(x[j] +a*b, i + j) -- 在调用前对func及其参数求值 是尾调用
8. 两个功能强大的函数:os.execute 和 io.popen

鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Nginx+Lua开发及指令详解发布时间:2022-07-22
下一篇:
c语言的lua库编写发布时间: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