【发布时间】:2014-03-30 08:09:46
【问题描述】:
我正在为 Corona sdk 学习 Lua,我有这些
local type1 = {nil, "(", nil, "x" ,nil , ")" ; n=6}
local type2 = {"(",nil, "x",nil, ")",nil ; n=6}
print(#type1) --prints 6
print(#type2) --prints 3
为什么第二个也不是6??
【问题讨论】:
我正在为 Corona sdk 学习 Lua,我有这些
local type1 = {nil, "(", nil, "x" ,nil , ")" ; n=6}
local type2 = {"(",nil, "x",nil, ")",nil ; n=6}
print(#type1) --prints 6
print(#type2) --prints 3
为什么第二个也不是6??
【问题讨论】:
# 运算符不适用于每个表,它仅适用于序列,即对于某个整数 n,其正数键的集合等于 {1..n}。在这种情况下,n 是它的长度。例如,local t = {"hello", 42, true} 是一个序列。
但是你的两个表都不是序列,因为它们有nil的“洞”。
【讨论】:
nil的值的数量?不能,因为某个键的 nil 值相当于在该键上没有值。
nil 赋值给一个值本质上与删除该值处的条目相同。