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

Lua初学者随笔一

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

 

1. 关于return

function test(a, b)
    print("Hello")
    return 
    print("World")
end

--call the function
test(1, 2);

--[[output
Hello 
World
]]

奇怪之处:

①Lua关于return语句放置的位置:return用来从函数返回结果,当一个函数自然结束结尾会的一个默认的return。Lua语法要求return只能出现在block的结尾一句(也就是说:任务chunk的最后一句,或者在end之前,或者else前,或until前),但是在本程序中竟然没有报错

②当执行return后,函数应该返回了,也就是说,上述程序本应该只输出Hello,然后函数就应当结束,不会再输出world,但是本程序确实Hello和world都输出了。

③若是return后面紧跟一个返回值,该程序就正常报错了,符合了Lua语法要求return只能出现在block的结尾一句。

function test(a, b)
 print("Hello")
 return 1
 print("World")
end

--call the function
test(1, 2);
--[[error: 
lua: hello.lua:4: 'end' expected (to close 'function' at line 1) near 'print'
]]

2. 关于返回不定参数

function newtable(...)
return(...) -- error
end
tb1=newtable("a","v","c")
for i=1,#tb1 do 
print (i,tb1[i])
end 

return(...) 由于加了括号,只能返回第一个值,其它的值被忽略了
正确的做法是:return{...}

3.select函数

function printargs(...)
local num_args=select("#", ...)
    for i=1 ,num_args do 
        local arg=select(i, ...)
        print (i,arg)
   end
end
printargs("a","b",3,"d")

select (index, ···)

If index is a number, returns all arguments after argument number index. Otherwise, index must be the string "#", and select returns the total number of extra arguments it received.

 

4.


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
lua基础学习(五)发布时间:2022-07-22
下一篇:
Lua打印HelloWorld发布时间: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