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,而非零。
第 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 回報
"We can load it whit" 應為 "We can load it with"
第 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 回報
"anchors it" 應為 "anchor it"
第 184 頁,第一段 由 Pete Hollobon 回報
"make the finalizer creates" 應為 "make the finalizer create"
第 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 頁,在函式 unexpandTabs由 Tomas Guisasola 回報
s = expandTabs(s) 應為 s = expandTabs(s, tab)
第 217 頁,第四段 由 Ana L�cia de Moura 回報
"multi-line sequences" 應為 "multi-byte sequences"
第 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。請參閱 正確程式碼 以取得完整的範例。

第二版

沒有可用的勘誤表。

第一版

請參閱 此頁面 以取得印刷版本的勘誤表。
勘誤表中列出的所有更正已在 線上版本 中完成。