Lua 编程指南 评论 |
|
2.4 - 为什么连接运算符 (..
) 是右结合的?请参见 AssociativityOfConcatenation。
2.5 - 关于“关联数组是一种数组,它不仅可以用数字索引,还可以用字符串或语言中的任何其他值索引,除了 Nil
”以及 27.3 - 第 252 页 -“注册表是一个普通的 Lua 表格。因此,您可以用任何 Lua 值索引它,但不能用 nil 索引。”NaN
也会失败 - 请参见 LuaList:2008-03/msg00603.html。
2.5 - #
和 table.maxn
的计算复杂度是多少?--DavidManura
#
的计算复杂度为 O(log Na)
,其中 Na
是表格数组部分的大小。table.maxn
为 O(N)
,其中 N
是表格的总分配大小,因为必须检查每个键。--RiciLake
27.3 - 第 254 页 - 拼写:register -> registry(在“优先考虑环境而不是注册表”中)
28.2 - luaL_newmetatable/luaL_getmetatable/luaL_checkudata
函数使用 C 字符串作为注册表的键。我更喜欢简单地为此使用 lightuserdata 或将元表格存储为上值(更有效且更不容易出错)。我还避免向 luaL_register
传递名称,因为存在不必要的名称冲突风险,这会设置一个全局变量,就像在 LuaModuleFunctionCritiqued 中批评的 module
函数一样。--DavidManura
(目前没有)
(目前没有)