http://lua-users.org/wiki/CppLuaDataPassing有以下代码可以从 C++ 创建 Lua 表:
// set first element "1" to value 45
lua_pushnumber( state, 1 );
lua_pushnumber( state, 45 );
lua_rawset( state, -3 );
// set the number of elements (index to the last array element)
lua_pushliteral( state, "n" );
lua_pushnumber( state, 1 );
lua_rawset( state, -3 );
根据该示例,最后一个 block 似乎意味着 Lua 表有一些特殊含义的键“n”,它存储最后一个数组元素的索引。
但我在 Lua Manual 中找不到任何对此的引用.
我的猜测是对还是错?
如果正确的话,有人可以给我指点一个很好的引用资料来解释这个“n”键吗?
如果错误,示例中第二个代码块的含义是什么?
如果正确的话,正在执行最后一个索引分配,以在 C++ 中创建一个有效的表以供 Lua 读取(假设 Lua 代码不会修改该表)
最佳答案
过去,保存表格的大小是一种约定。我相信在 lua 5.1 中,他们不赞成这种做法,而是支持 #
运算符,因为有时它看起来会与人们填充到表中的数据神奇地发生冲突。
关于c++ - "n"键在Lua表中有什么特殊含义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13753557/