2016-07-27 2 views
2

Я хочу использовать ключ insde анонимной таблицы внутри той же таблицы, как так:Используйте ключ таблицы внутри же (анонимной) таблицы

loadstring([[return { 
    a = "One", 
    b = a.." two" 
}]]) 

С моей точки зрения, это должен возвращает следующую таблицу :

{ a = "One", b = "One two" } 

Однако он просто возвращает nil. Можно ли это сделать, и как?

ответ

4

other answer Как сказал, вы не можете ссылаться на ключ в таблице, которая строится, но вы можете использовать переменную для хранения значения вы хотите ссылаться несколько раз:

local a = "One" 
local t = { a = a, b = a.." two" } 
2

Нет, вы не можете этого сделать. В точке, где вы используете a, таблица не была построена. Lua ищет глобальную переменную a, поэтому вы получаете nil.

Если вы хотите обратиться к клавишам в таблице, они должны быть определены первыми.

local t = { a = 'One' } 
t.b = t.a..' two' 
Смежные вопросы