Lua - длина таблицы кажется неверной
a = {}
a[1] = 1
a[2] = nil -- does nothing, as a[2] is already nil
a[3] = 14
print(#a)
печатает 1
a = {}
a[1] = 1
a[2] = nil -- does nothing, as a[2] is already nil
a[3] = 14
a[4] = 5
print(#a)
принты 4
Что действительно возвращает оператор #?
1 ответ
Решение
Если таблица не является правильной последовательностью, возвращаемое значение #
Оператор применяется к этой таблице не определено.
В обоих ваших случаях a
не правильная последовательность, потому что a[2] == nil
а также a[3] ~= nil
,
#
Оператор возвращает длину соответствующих последовательностей.