[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Another table question...
- From: "Alex Davies" <alex.mania@...>
- Date: Thu, 10 Apr 2008 02:42:07 +0800
----- Original Message -----
From: "Eugen-Andrei Gavriloaie"
The table might have keys 1,2,3,55,34,22,"sdfds",etc. This table is
returned by calling a lua function (is on the C++ stack). After doing
some c++ processing I'd like to add more "anonymous" values (with no
keys) to the table and pass it as a parameter to anoter lua function. So,
I have no guarantee that the key is not in use. :(
Um, just so we're clear, the table: {1, 2, 3, 55, 34, 22}
does not have any "anonymous" values. It's merely a short hand way of
writing:
{ [1] = 1, [2] = 2, [3] = 3, [4] = 55, [5] = 34, [6] = 22 }
As in Lua there is no such thing as a value in a table without a key. How
would you retrieve such a value?
(Your wording was a little vague).
So to add more values, simply use the code provided earlier
(lua_rawseti(L, -2, lua_objlen(L, -2) + 1)).
See, t[#t+1] is always nil, by definition. So you're always safe to add more
values there.
(If you mean that want you want a way of attaching additional info to a
table without modifying the table in anyway, that's a separate problem that
can be solved by weak tables).
- Alex