1

我知道: http: //lua-users.org/wiki/SimpleLuaApiExample

它向我展示了如何逐项构建表(键,值)对。

假设相反,我想构建一个巨大的表(比如说一个 1000 个条目的表,其中键和值都是字符串),在 lua 中是否有一种快速的方法(而不是每个条目 4 个 func 调用:

push
key
value
rawset
4

4 回答 4

4

您所写的是解决此问题的快速方法。 Lua 表设计精巧,速度足够快,不需要某种虚假的“提示”说“我希望这张表可以增长到包含 1000 个元素”。

于 2010-05-09T15:42:30.020 回答
1

对于字符串键,您可以使用lua_setfield.

于 2010-05-09T13:47:58.937 回答
0

不幸的是,对于关联表(字符串键、非连续整数键),不,没有。

对于数组类型的表(使用常规的 1...N 整数索引),有一些性能优化函数,lua_rawgeti并且lua_rawsetihttp ://www.lua.org/pil/27.1.html

于 2010-05-09T10:31:45.567 回答
0

您可以使用 createtable 创建已具有所需插槽数的表。但是,在那之后,除了

for(int i = 0; i < 1000; i++) {
    lua_push... // key
    lua_push... // value
    lua_rawset(L, tableindex);
}
于 2010-05-09T15:45:24.167 回答