Programming In Lua 评论 |
|
2.4 - 为什么字符串连接 (..) 是右结合的?请参阅 AssociativityOfConcatenation。
2.5 - 关于“关联数组是可以用数字、字符串或语言中的其他任何值(除了 Nil)作为索引的数组”,以及 27.3 - p.252 - “注册表是一个常规的 Lua 表。因此,你可以用除 nil 之外的任何 Lua 值作为它的索引。”NaN 也可能出错——请参阅 LuaList:2008-03/msg00603.html。
2.5 - # 和 table.maxn 的计算复杂度是多少?--DavidManura
# 的计算复杂度是 O(log Na),其中 Na 是表的数组部分的大小。table.maxn 的复杂度是 O(N),其中 N 是表分配的总大小,因为必须检查每个键。--RiciLake
27.3 - p.254 - 拼写错误:register -> registry (在“favor the environment over the register”中)
28.2 - luaL_newmetatable/luaL_getmetatable/luaL_checkudata 函数使用 C 字符串作为注册表的键。我宁愿只使用一个 lightuserdata 来实现这一点,或者将元表存储为 upvalue(更高效且不易出错)。我还避免将名称传递给 luaL_register,因为存在不必要的名称冲突风险,并且这会创建一个全局变量,类似于在 LuaModuleFunctionCritiqued 中批评的 module 函数。--DavidManura
(目前无)
(目前无)