我在Lua unpack函数中偶然发现了一个奇怪的行为
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)
Run Code Online (Sandbox Code Playgroud)
输出:
table1: true nil true false nil nil nil
table2: true false nil nil nil nil nil
Run Code Online (Sandbox Code Playgroud)
第二个unpack传递的参数高达第一个零值.我可以忍受这个.第一张表提供4张?参数中间有一个为零.它有4个参数不是nil,但它们不是显示的参数.
有人能解释一下吗?这是使用codepad.org和lua 5.1进行的