Я наткнулся на странное поведение функции распаковки Lua
table1 = {true, nil, true, false, nil, true, nil}
table2 = {true, false, nil, false, nil, true, nil}
a1,b1,c1,d1,e1,f1,g1 = unpack( table1 )
print ("table1:",a1,b1,c1,d1,e1,f1,g1)
a2,b2,c2,d2,e2,f2,g2 = unpack( table2 )
print ("table2:",a2,b2,c2,d2,e2,f2,g2)
Выход:
table1: true nil true false nil nil nil
table2: true false nil nil nil nil nil
Вторая распаковка доставляет параметры до первого нулевого значения. Я мог бы жить с этим. Первая таблица дает 4? параметры с одним нулем в середине. У него есть 4 параметра, которые не равны нулю, но они не те, которые показаны.
Может ли кто-нибудь объяснить это? Это было сделано с помощью codepad.org и lua 5.1.