lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi, list

Here are the first code snippet and the output:
>a={nil, "sun"}    --output: 2

Here are the second code snippet and the output:
>b = {}
>b[2] = "sun"
>print(#b)          --output:0

Here are the third code snippet and the output:
> function printTab(tab)
>> for k,v in pairs(tab) do
>> print(k,v)
>> end
>> end
>
>type(a) == type(b)    --output:true
>a == b                      --output: false     amazing!!!
>> printTab(a)            --output: 2       sun
>> printTab(b)             --output: 2       sun


It's amazing that "printTab(a)" and "printTab(b)" are the same whereas
"#a" and "#b" are different (and "a == b" outputs false).
Could somebody shed some light on this question?

Best regards
Sunshilong