lua中有四种主要的遍历一个table的方法。
第一种方法:
1 for key, value in pairs(testtb) do 2 xxxx 3 end
这种方法是按照key哈希后的顺序遍历的。比如下面代码的输出,并不是按顺序的
testtb = { [1] = 1; [2] = 2; [3] = 3; [5] = 5; [6] = 6; ["w"] = "w"; } for key, value in pairs(testtb) do print(key, value) end [[ 输出 6 6 2 2 3 3 1 1 5 5 w w ]]
第二种方法:
for key, value in ipairs(testtb) do xxx end
这种方法提供了按照key的大小顺序来遍历,但是必需要求table中的key是顺序的,而且必需是从1开始,直到key不连续为止。
第三种方法:
for i = 1, #(testtb) do xxx end
#(table),获取的是table中,整型key从1开始,直到key不连续为止的key的个数。
第四种方法:
for i=1, table.maxn(testtb) do xxx end
table.maxn获取的是table中,整型key的最大值。