我使用时有一个问题#
计算表的长度。例如:
local t = {"a", "b"}
local t1 = {"a", nil}
print(#t) -- 2
print(#t1) -- 1
local t = {"a", "b"}
local t1 = {nil, "a"}
print(#t) -- 2
print(#t1) -- 2
有人能告诉我为什么吗?
Unless __len
定义了元方法,#
运算符只能对作为序列的表进行操作。
序列是一个表,其正数字键的集合等于{1..n}
对于一些非负整数n
.
在你的例子中:
local t = {"a", "b"}
t
是一个长度为2
.
local t1 = {"a", nil}
相当于local t1 = {"a"}
, so t1
是一个长度为1
.
local t1 = {nil, "a"}
t1
不是一个序列,所以#t1
没有定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)