Lua 编程指南 评论

lua-users home
wiki

此页面用于评论、勘误和关于 Roberto Ierusalimschy 编著的书籍 [Lua 编程指南] 的讨论。

第二版评论

2.4 - 为什么连接运算符 (..) 是右结合的?请参见 AssociativityOfConcatenation

2.5 - 关于“关联数组是一种数组,它不仅可以用数字索引,还可以用字符串或语言中的任何其他值索引,除了 Nil”以及 27.3 - 第 252 页 -“注册表是一个普通的 Lua 表格。因此,您可以用任何 Lua 值索引它,但不能用 nil 索引。”NaN 也会失败 - 请参见 LuaList:2008-03/msg00603.html

这可能是因为,根据定义,Nan != Nan,这违反了哈希表要求键可比较以进行相等性比较。--ChrisRebert?

2.5 - #table.maxn 的计算复杂度是多少?--DavidManura

同样,这更像是一个语言问题,而不是一个书本问题。在大多数情况下,# 的计算复杂度为 O(log Na),其中 Na 是表格数组部分的大小。table.maxnO(N),其中 N 是表格的总分配大小,因为必须检查每个键。--RiciLake

27.3 - 第 254 页 - 拼写:register -> registry(在“优先考虑环境而不是注册表”中)

28.2 - luaL_newmetatable/luaL_getmetatable/luaL_checkudata 函数使用 C 字符串作为注册表的键。我更喜欢简单地为此使用 lightuserdata 或将元表格存储为上值(更有效且更不容易出错)。我还避免向 luaL_register 传递名称,因为存在不必要的名称冲突风险,这会设置一个全局变量,就像在 LuaModuleFunctionCritiqued 中批评的 module 函数一样。--DavidManura

第一版评论

(目前没有)

其他评论

(目前没有)


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2008 年 4 月 9 日凌晨 3:56 GMT (差异)