第一版是針對 Lua 5.0 所寫。儘管對於後續版本來說,大部分內容仍然適用,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買此書,您同時也協助 支援 Lua 專案


13.4.2 – __newindex 元方法

__newindex 元方法對表格更新所做的,與 __index 對表格存取所做的類似。當您將值指定給表格中不存在的索引時,直譯器會尋找 __newindex 元方法:如果找到,直譯器會呼叫它,而不是 執行指定動作。與 __index 一樣,如果元方法是表格,直譯器會在該表格中執行指定動作,而不是在原始表格中執行。此外,有一個原始函式可讓您繞過元方法:呼叫 rawset(t, k, v) 會在表格 t 的金鑰 k 中設定值 v,而不會呼叫任何元方法。

結合使用 __index__newindex 元方法,可以在 Lua 中建立多種強大的建構,從唯讀表格到具有預設值的表格,以及物件導向程式設計的繼承。在本章的其餘部分,我們將看到其中一些用法。物件導向程式設計有其專屬章節。