lua的除了numeric for循环, 还有一个比较实用的循环方法.
遍历table对象的generic for循环语法举例 :
同样, 尽量不要在循环内修改自动生成的本地变量k,v的值.
With proper iterators, we can traverse almost anything in a readable fashion. The standard
libraries provide several iterators, which allow us to iterate over the lines of a
file (io.lines), the pairs of a table (pairs), the entries of a sequence (ipairs),
the words of a string (string.gmatch), and so on.
Of course, we can write our own iterators.
遍历table对象的generic for循环语法举例 :
> days = {"Sun","Mon","Tue","Wen","Thu","Fri","Sat"}
> for k,v in pairs(days) do
>> print(k)
>> print(v)
>> end
1
Sun
2
Mon
3
Tue
4
Wen
5
Thu
6
Fri
7
Sat
使用这种方法初始化一个K-V类型的table是比较方便的.
> kvdays = {}
> for k,v in pairs(days) do
kvdays[v] = k
end
> print(kvdays["Sun"])
1
> print(kvdays["Sat"])
7
同样, 尽量不要在循环内修改自动生成的本地变量k,v的值.