LUA趣事之 for 语句

来源:互联网 发布:mac x 资料库 编辑:程序博客网 时间:2024/05/21 10:04

今天看 erlang  群里在讨论一个问题,我就演变成lua 进行看看,结果是这样的,直接上代码。

一:数字型 for

function   test1()for i = 1,3 dofor i = 4,6 doprint(i)endendendtest1()

结果是什么呢?

4,5,6,     4,5,6,   4,5,6     

注意:for i 的i作用域属于for结构,为local变量;

local  a = 0;

local a ;

print(a)

此时输出什么呢?


二:泛型 for

先看下面这段代码:



执行的结果是什么呢?



为什么这样呢? 对与一个我初学者来说,不明白。

看看书上的概念吧:

泛型for 循环是通过迭代器函数来遍历所有值。(迭代器是啥呢?)

迭代器就是一种可以遍历集合中所有元素的机制。

好了,基本概念弄懂了,再看看ipairs 和 pairs 的区别吧。(参考自:http://www.92csz.com/00/1038.html)



看下面这个代码


是的,是没有输出。。

改成下面这样



它在 ipairs(tabFiles) 遍历中,当key=1时候value就是nil,所以直接跳出循环不输出任何值。 当存在 key = 1 时,输出值 test2,k = 2 时断开。

小伙伴们 明白了没。。我也是 初学者 ,一起进步!发现还有一篇文章写得不错,大家可以看看这里




0 0