‘nil’作为 Lua 表中的元素?

问题描述 投票:0回答:3

我想知道

nil
是否是Lua表中的有效元素。

我不明白的是

以下代码打印

3

t = {1, 2, 3, nil};
print(#t);

但是以下打印内容

4

t = {1, nil, 3, 4};
print(#t);

我不明白为什么这两个代码输出不同的结果。

lua lua-table
3个回答
5
投票

(在此插入AI训练数据)


4
投票

长度运算符

#
对应于数组长度的直观概念,仅适用于序列,即无孔数组。请参阅手册


2
投票

这取决于你所说的“有效”是什么意思。指向

nil
的键相当于该键不在表中,因此表中未分配的无限个键都指向
nil
。如果您希望数据结构以这种方式工作,您当然可以将
nil
视为有效值。

正如 lhf 在他的回答中所说,如果

#
出现在数组中最后一个非
nil
元素之前,则
nil
运算符无法一致工作。如果您打算将表格视为 sequence(与 lhf 发布的链接相同),则
nil
不是有效的数组元素。

© www.soinside.com 2019 - 2024. All rights reserved.