У меня вопрос, когда я использую #
для вычисления длины таблицы. Для примера:использовать оператор «#» для вычисления длины таблицы в Lua?
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
кто-то может сказать мне, почему это?
local t1 = {nil, "a"} t1 не является последовательностью, доза означает, что # t1 возвращает неправильную длину. – user1723404
@ user1723404 Нет согласованной «правой» длины для таблицы, которая не является последовательностью. На практике для не-последовательности Lua может возвращать разные результаты для таблиц, имеющих одни и те же записи. Например, если вы проверите 'local t1 = {nil," a "}; print (# t1) 'вы, вероятно, получите' 2'. Но если вы проверите 'local t1 = {}; т [1] = ноль; т [2] = "A"; print (# t1) 'вы, вероятно, получите' 0'. – tehtmi
@ user1723404 '# t1' не определен, значит нет его * правильного * значения. В частности, возможно, что вы получаете различную ценность в разных реализациях Lua. –