c++ - "n"键在Lua表中有什么特殊含义吗?

标签 c++ lua associative-array

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/

相关文章:

c++ - 让 C++ 和 Ruby 共享公共(public)类的最佳方式是什么?

C++错误LNK2001问题

string - LUA:在双引号中查找并返回字符串

Lua - 将变量与固定值列表进行比较的最节省资源的方法

php - 在 MYSQL 中读取和写入 PHP 数组

javascript - 使用关联数组作为变量名? - javascript

c++ - 使用堆栈比较字符串

c++ - 将带有字段的表作为参数从 C++ 传递给 Lua 函数?

php - array_push 用于关联数组

c++ - 在 C++ 中为实际参数和形式参数指定相同的变量名称会产生任何问题吗?