我们先看一下这次的题目,这是一道根据内容写输出的题目:
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
网友评论