【发布时间】:2015-04-22 01:30:53
【问题描述】:
我在玩 Lua 表时发现:
local t1 = {1, 5, nil, 10}
local t2 = {1, 5, nil, 10, nil}
print(t1[5], t2[5]) --> nil nil
print(#t1, #t2) --> 4 2
我原以为两张表的长度都是 4,但 t2 的长度竟然是 2。谁能解释一下?
【问题讨论】:
-
调用
#序列长度运算符 和ipairs序列迭代器更容易。 你的两个表都没有序列。 (#即使在没有序列的表上调用时也返回非负整数似乎是一个未说明的要求。)所有这些行为都支持序列的时间和空间优化。