Lua Lua 编程 – 勘误表

第四版

第 31 页
write(page) 应为 io.write(page)
第 86 页,在函数 rect
bottom <= x and x <= up 应为 bottom <= y and y <= up
第 116 页(以及其他几处)
signal 应为 sign
第 135 页,练习题 14.2 由 Colin Barry 报告
当队列为空时,last 应返回 -1,而不是 0。
第 142 页,清单 15.1
函数 quote 有误。(特别是,它对 "]]" 给出了错误的结果)。一种可能的修复方法是在 string.gmatch 中使用模式 "]=*"
第 162 页
guides require is is a little different 应为 guides require is a little different
第 163 页,顶部
If both are unefined 应为 If both are undefined
第 196 页,练习题 20.4
file as array 应删除

第三版

第 13 页,第二行 由 Martin B�ttner 报告
\x\hh 应为 \xhh
第 35 页,第五行 由 Tony Booer 报告
"basic Lua library>" 应为 "basic Lua library."
第 37 页,第一个代码片段 由 Lorenzo Donati 报告
else if 应为 elseif
第 59 页,练习题 6.1 由 Jan Sedl�k 报告
问题描述不太准确。它应如下所示

“编写一个函数integral,它接收一个函数f并返回其定积分函数。此返回函数在给定两个值ab时,返回fab的积分近似值”

第 66 页,第二段
有此注释

“如前所述,Lua 中不常见链表,但有时我们需要它们。”

但是,本书在此之前并未提及链表。

第 99 页,第 10.2 节中的第一个代码片段 Tomas Guisasola 报告
allwords 应为 allwords()(函数调用)
第 131 页,倒数第二行 Martin B�ttner 报告
__leq 应为 __le
第 147 页 Peter Kazmier 报告
“我们可以用它加载” 应为 “我们可以用它加载”
第 152 页,第三个代码片段 Claudio Morgado 报告
local f = mod.foo 应为 local f = m.foo
第 158 页,清单 15.2 Tony Booer 报告
local i = complex.new(0, 1) 应为 local i = new(0, 1)
第 177 页,第 17.2 节标题
故意使用单词“Memoize”(而不是“Memorize”),以指代术语“Memoization”(意为“Memorization”,但已建立)。
第 183 页,最后一行 Pete Hollobon 报告
“将其锚定” 应为 “将其锚定”
第 184 页,第一段 Pete Hollobon 报告
“使终结器创建” 应为 “使终结器创建”
第 192 页,最后一个代码片段 Martin B�ttner 报告
if bit32.or(a, b) == bit32.or(-1) then

应为

if bit32.bor(a, b) == bit32.bor(-1) then

第 198 页,练习 20.1 Patrick 报告
print 语句中缺少一个闭合括号。
第 213 页,在函数unexpandTabsTomas Guisasola 报告
s = expandTabs(s) 应为 s = expandTabs(s, tab)
第 217 页,第四段 Ana L�cia de Moura 报告
“多行序列” 应为 “多字节序列”
第 225 页,第六段 Lorenzo Donati 报告
与书中所述相反,io.lines 无法将文件句柄作为其第一个参数。
第 226 页,清单 22.1 Lorenzo Donati 报告
应删除以下行,因为它无用

local f = io.input(arg[1]) -- 打开输入文件

第 226 页,最后一段
观察 "只要模式不包含零字节" 不适用于 Lua 5.2。Lua 5.2 可以毫无问题地处理模式中的零字节。
第 234 页,最后一段代码片段 Daniele Kazan 报告
loadstring 应为 load
第 282 页,倒数第三段 Martin B�ttner 报告
lua_pcall 应为 lua_call
第 292 页,练习 28.4 和 28.6 Daniele Kazan 报告
"tranliterate" 应为 "transliterate"
第 323 页,第 31.2 节 Andrew Starks 报告
本节中描述的库 lproc 的代码中有一些错误:缺少一些 #include 以及使用了两个已弃用的实体 luaL_regluaL_register。有关完整示例,请参见 更正后的代码

第二版

无可用的勘误表。

第一版

有关印刷版的勘误表,请参见 此页面
勘误表中列出的所有更正已在 在线版本 中进行。