Re: Nested table constructor with reference to other children
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Re: Nested table constructor with reference to other children
- From: Philipp Janda <siffiejoe@...>
- Date: 2011年10月30日 16:07:29 +0100
On 30.10.2011 15:39, Marc Balmer wrote:
Hi
Hi!
I am trying create a table with subtables, where subtables reference
each other, using the table constructor syntax:
a = {
one = {
a = 1,
b = 2
},
two = {
a = 1,
b = one -- set's b to nil
}
}
Is there a way to write this constructor, so that a.two.b is set to
a.one instead of nil? Or do I have to fixup the table after construction?
The best I can come up with is this:
$ cat > ref.lua
local temp = {}
local function v( s )
return function( t )
temp[ s ] = t
end
end
local function r( s )
return temp[ s ]
end
a = {
one = v"one"{
a = 1,
b = 2
},
two = {
a = 1,
b = r"one"
}
}
print( a.two.b.a )
^D
It seems to work, but I didn't find any guarantees about table
constructor evaluation order by quickly skimming the ref manual ...
Thanks,
Marc
Philipp