Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
math.randomseed(os.time())
local a = {}
a[#a+1] = function() --create
local t = {}
t[#a+1] = math.random(1,100)
t[#a+2] = 'хуй'
return setmetatable(t,{__index = a})
end
a[#a+1] = function() --empty function
end
local t = a[1]()
for k,v in ipairs(t) do
print(k,v) --показывает все элементы таблицы как положено
end
print(#t) --0
print(t[4]) --хуй
Ладно скажу ответ.
Потому что 1 и 2 элемента у t не существует
а # вернет длину до первого разрыва!
Соответственно первый разрыв в 1 элементе, по этому длина 0.
А в цикле как бы показывается что якобы есть 1 и 2 элемент, но это пиздешь, это лишь ссылки на элементы a.
Нехуя непонятно
> setmetatable
Потому что доигрались с метатаблицами?
Потому что 1 и 2 элемента у t не существует
а # вернет длину до первого разрыва!
Соответственно первый разрыв в 1 элементе, по этому длина 0.
А в цикле как бы показывается что якобы есть 1 и 2 элемент, но это пиздешь, это лишь ссылки на элементы a.
ВНИМАНИЕ. ГОВНОКОДНАДЗОР ПРЕДУПРЕЖДАЕТ! ЧЕРЕЗМЕРНОЕ ЗЛОУПОТРЕБЛЕНИЕ ОПРЕДЕЛЕНИЯ ДЛИНЫ ВРЕДИТ БЫСТРОДЕЙСТВИЮ!
Не шути со временем, не шути сука со временем, Понял? Пидарасина.
https://youtu.be/omI0fmiArJM