lua-users home
lua-l archive

Re: Why is nil not a valid table key?

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


Rici Lake wrote:
On 26-Nov-05, at 10:29 AM, Mike Pall wrote:
Lua signals the end of a table traversal with a nil key. This is
both simple and efficient.
It is pretty easy to store a 'length' property in a table to identify how many numeric keys it has. I found that technique ALMOST works in Lua. If a table has entries for numeric keys 1,2,12 and 17, and I set the length property to 17 then I can go:
 for i=1,t.length do
 print(t[i])
 end
and I will get all the numbers printing out, with nils in the slots that don't have a numeric index.
But I found that attempting to set:
 t[0] = "hello"
does not work. When I read this back, it prints nil. Is this true, or do I have a bug in my logic somewhere? I thought Lua only cared about "arrays starting at 1" when you fill a table like this:
 local t = { 12,17,627 }
In which case t[1] == 12. But can you not even set a numeric property on a table with the numeric key of 0? If so, that seems very broken...
--
chris marrin ,"",ドル "As a general rule,don't solve puzzles
chris@marrin.com b` $ that open portals to Hell" ,,.
 ,.` ,b` ,` , 1$'
 ,|` mP ,` :$$' ,mm
 ,b" b" ,` ,mm m$$ ,m ,`P$$
 m$` ,b` .` ,mm ,'|$P ,|"1$` ,b$P ,` :1ドル
 b$` ,$: :,`` |$$ ,` $$` ,|` ,$,,ドル`"$$ .` :$|
b$| _m$`,:` :1ドル ,` ,$Pm|` ` :$,ドル..;"' |$:
P$b, _;b$$b1ドル" |$$ ,` ,$$" ``' $$
 ```"```'" `"` `""` ""` ,P`

AltStyle によって変換されたページ (->オリジナル) /