Lua习题分析(一):table、‘#’、“ipairs”和“p

2017-11-04  本文已影响0人  木雁之

我们先看一下这次的题目,这是一道根据内容写输出的题目:

local data = {[0] = 'hello', [1] = 'world', [2] = 'xuerbuhuan'}
print(#data)

for k, v in ipairs(data) do
    print(k, v)
end

for k, v in pairs(data) do
    print(k, v)
end 

这道题目考察以下两个方面:

1 用‘#’取table的长度

我们知道,table的默认索引是从1开始的。‘#’符所取的长度,是从索引1开始,直到遇到第一个nil value终止

2 “ipairs”和“pairs”的区别

ipairs返回一个迭代器函数、table或者0;它会从key=1开始迭代table中的键值对,直到遇到第一个nil value

pairs会迭代table中所有键值对;如果table中含有元方法__pairs,返回它的前三个结果,否则返回函数next,table,nil。

因此,这段代码的输出是:

2
1   world
2   xuerbuhuan
0   hello
2   xuerbuhuan
1   world

上一篇 下一篇

猜你喜欢

热点阅读