Lua 編程中的註解

lua-users home
wiki

本頁面專門討論羅伯托·伊魯薩林斯基編寫的書籍「[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 字串作為註冊表的鍵。我比較喜歡直接為此使用輕量使用者資料或將元表儲存為上值(更有效率且錯誤更少)。我也避免將名稱傳遞給 luaL_register,因為存在不必要的名稱衝突風險,而且這會將一個全域變數設定得與 LuaModuleFunctionCritiqued 中所批評的 module 函式非常相似。--DavidManura

第一版註解

(目前無)

其他註解

(目前無)


最近變更 · 偏好設定
編輯 · 歷史記錄
最後編輯於 2008 年 4 月 9 日上午 3:56 (GMT) (差異)