8
голосов
3ответов
15672 просмотров

Как создать вложенные таблицы Lua с помощью C API

Я хочу создать такую таблицу myTable = { [0] = { ["a"] = 4, ["b"] = 2 }, [1] = { ["a"] = 13, ["b"] = 37 } } используете C API? Мой текущий подход lua_createtable(L, 0, 2); int c = lua_gettop(L); lua_pushstring(L, "a"); lua_pushnumber(L, 4); lua_settable(L, c); lua_pushstring...

19
голосов
3ответов
20059 просмотров

Iterating through a Lua table from C++?

I'm trying to load tables from Lua to C++ but I'm having trouble getting it right. I'm getting through the first iteration just fine but then at the second call to lua_next it crashes. Any ideas? Lua file: level = { 1, 2, 3, } C++ file - First I did this: lua_getglobal( L, "level" ); for...

4
голосов
1ответов
1767 просмотров

Lua bindings: table vs userdata

When making Lua bindings for C++ classes, should I return tables or userdata objects? Does anyone know any of the pros and cons for each method?

31
голосов
9ответов
54916 просмотров

Concatenation of tables in Lua

ORIGINAL POST Given that there is no built in function in Lua, I am in search of a function that allows me to append tables together. I have googled quite a bit and have tried every solutions I stumbled across but none seem to work properly. The scenario goes like this: I am using Lua embeded ...

63
голосов
8ответов
59085 просмотров

Lua - merge tables?

I need to merge two tables, with the contents of the second overwriting contents in the first if a given item is in both. I looked but the standard libraries don't seem to offer this. Where can I get such a function?

121
голосов
8ответов
69938 просмотров

Most efficient way to determine if a Lua table is empty (contains no entries)?

What's the most efficient way to determine if a table is empty (that is, currently contains neither array-style values nor dict-style values)? Currently, I'm using next(): if not next(myTable) then -- Table is empty end Is there a more efficient way? Note: The # operator does not suffice...

3
голосов
2ответов
3086 просмотров

Сборка мусора Lua таблиц, вложенных таблиц

[Я прочитал руководство по Lua, но оно не дало однозначных ответов.] Допустим, у меня есть таблица Lua, работающая как индексированный массив: local myArray = {}; myArray[1] = "Foo"; myArray[2] = "Bar"; Как мне лучше всего избавиться от этого стола? Я просто установил myArray на ноль? ...

51
голосов
8ответов
108157 просмотров

Поиск элемента в списке Lua

Если у меня есть список вроде этого: local items = { "apple", "orange", "pear", "banana" } как проверить, есть ли «оранжевый» в этом списке? В Python я мог: if "orange" in items: # do something Есть ли аналог в Lua?

57
голосов
15ответов
66549 просмотров

Как скопировать таблицу Lua по значению?

Недавно я написал немного кода Lua, например: local a = {} for i = 1, n do local copy = a -- alter the values in the copy end Очевидно, это было не то, что я хотел сделать, поскольку переменные содержат ссылки на анонимную таблицу, а не значения самой таблицы в Lua. Это ясно изложен...

32
голосов
3ответов
25412 просмотров

Как быстро инициализировать ассоциативную таблицу в Lua?

В Lua вы можете создать таблицу следующим образом: local t = { 1, 2, 3, 4, 5 } Однако я хочу создать ассоциативную таблицу, я должен сделать это следующим образом: local t = {} t['foo'] = 1 t['bar'] = 2 Следующее приводит к ошибке: local t = { 'foo' = 1, 'bar' = 2 } Есть ли ...

9
голосов
2ответов
10949 просмотров

Как мне создать таблицу Lua на C ++ и передать ее функции Lua?

В C ++ у меня есть map<string, string>, содержащий неизвестное количество записей. Как я могу передать это функции Lua, чтобы функция Lua могла использовать данные в виде таблицы?