У меня есть следующая вложенная таблица, определенная в Lua. Мне нужно передать его в мою программу на C ++, чтобы я мог точно прочитать его значения. Я знаю, что могу передать одну таблицу Луе, используя
lua_getglobal(L, "parameters")
функция. Но в этом случае, поскольку он является вложенным, как я могу с этим справиться?
parameters =
{
fuel = 100,
damage = 250,
maxspeed = 250,
levels =
{
{
fuel = 200,
damage = 600,
maxspeed = 300,
},
{
fuel = 300,
damage = 750,
maxspeed = 400,
},
}
}
lua_getglobal
будет работать для «параметров», как и любая другая переменная. Вы получите стол на вершине стека. Оказавшись там, вы можете использовать lua_gettable()
, lua_getfield()
а также lua_rawget*()
функции для доступа к своим полям. Тот факт, что таблица является вложенной, не имеет никакого значения в доступе к ней вообще. Чтобы получить доступ к подтаблице, поместите ее в стек с этими функциями и получите доступ к ней так же, как к ее «родительской» таблице.