• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.3.8
软件大小:62.5M
更新时间:12-18

按键精灵iOS版
立即下载

软件版本:1.7.1
软件大小:29.2M
更新时间:06-22

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

果壳lua教程(第四集-第一节):变参函数 [复制链接]

1#


emmm...代码:

  1. function newtable(a,b,...)

  2. tbl = {...}

  3. for i = 1,#tbl do

  4. print(tbl[i])

  5. end

  6. end

  7. newtable("a","b","c",4)
复制代码

>小茗同学:报告老湿,没能看懂,这...(点点点)是何意啊?

果壳王子:点点点,就是...哪里不会点哪里喽!

小茗同学:...

果壳王子:哈哈,开个玩笑!事实上,点点点代表的就是省略的意思喽!

小茗同学:...

果壳王子:好吧,正经点说,那仨点就是省略参数,那么这些被省略的参数究竟为何物?

这就要看你传进去的数据为何物!

比如,在本例中,我们通过调用newtable 传入了4个参数,分别是a,b,c和4,对吧!

那么我们现在把目光转向newtable函数的参数列表中瞧瞧:function newtable(a,b,...)

参数变量a用于接收第一个传进的参数值"a",参数变量b用于接收第二个传进的参数值"b",那么问题来了:第三个参数变量居然是...(点点点)!

小茗同学:老湿,如果我没猜错的话,这点点点所接收的数据应该就是所传进的第3个数据了?

果壳王子:唔...对也不对,不对也对——并不全对!

小茗同学:愿闻其详!

果壳王子:完整地说,这点点点啊,代表的是,所传进的第3个,以及第3个以上的参数数据哟!

小茗同学:哇噢,好像有点头绪了!之前用显式指定参数变量的方式分别指定了a和b用于接收前俩参数值,而后续的参数值则用隐式的方式(也就是点点点)来表示,并且后续的参数值从指定参数变量接收的参数值之后开始,可以无限增加!

果壳王子:你领悟的很深,但我们要深入浅出点说,让大伙都容易理解。以本例来说就是,在"b"值之后的所有值,都可用...来表示!

于是在"b"值之后,又传了俩值,分别是"c"和4,那么问题来了,如何通过这点点点取出这"c"和4呢?

首先我们声明一个称为tbl的表,用于接收点点点数据:tbl={...}

然后只需遍历出tbl表即可获取该表所有元素(也就是点点点所代表的所有数据内容)

我们通过for循环来实现tbl表的遍历,于是最终输出c和4

小茗同学:那么如果要输出a和b的值,只需在该函数中直接调用print(a)和print(b)即可实现?

果壳王子:是滴!

本节课到此结束!下节课讲通过变参函数来创建一个可指定任意元素个数的新表!


本主题由 按键合作伙伴 果壳王子 于 2020/3/31 22:44:05 执行 设置高亮 操作
果壳学院 ● 疯狂编程 QQ交流群: 327610461 (编程要从娃娃抓起)

  果壳热编程教育网:www.guokeHOT.com ←点击登录,即刻学习!

发新话题 回复该主题