[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Strings as Keys in table
- From: Eva Schmidt <es@...>
- Date: Tue, 05 Jun 2007 11:21:25 +0200
Hello,
I've got some problems with table indexing with strings in Lua:
I have a table with tables inside indexed like that
-- global
t = {}
function foo()
...
if not t["a"] then t["a"] = {} end
if not t["a"]["b"] then t["a"]["b"] = {} end
...
if not t["a"]["b"][..]["2.5"] then t["a"]["b"][..]["2.5"] = 20 end
...
end
My problem now is that even if the table index exists already it is not found if
the function is called for the second time - so every time the function is
called the table will be newly created.
The Lua Wiki told me :
"
Strings as references
Aside: The fact that keys are references, and strings can be used, tells us
something about Lua's internals. We must be referring to the same string when we
get and set the value or table string keys wouldn't work! Strings are not
duplicated in Lua internally, so when you reference a string with the same value
you are referring to the same string.
"
So I think my problem is, that I have to index the table with the same string
object as before, not just with the same string.
Does anybody have an idea how to realize that as smart as possible? Maybe some
kind of a hash table ...?
Thanks for any help!
Cheers, Eva