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 );
似乎最后一个块意味着Lua表具有一些特殊含义的“n”键,它根据该示例将索引存储到最后一个数组元素。
但我在Lua Manual中找不到任何引用。
我的猜错是对还是错?
如果它是对的,有人可以给我一个很好的参考来解释这个“n”键吗?
如果错误,示例中第二个代码块的含义是什么?
如果它是正确的,那就是在C ++中为Lua读取创建一个有效的表所需的最后一个索引赋值(假设Lua代码不会修改表)
答案 0 :(得分:2)
它曾经是保持表格大小的惯例。我相信lua 5.1他们不赞成这种做法有利于#
运算符,因为有时它似乎与人们在桌子上填充的数据神奇地发生冲突。
答案 1 :(得分:0)
看看这个:http://www.lua.org/pil/19.1.html
n
表示数组的长度。它最常用于getn()
函数,它只返回表中元素的数量。