第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于更高版本,但有一些差异。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还可以帮助支持 Lua 项目


13.4.2 – __newindex 元方法

__newindex 元方法对表更新的作用与 __index 对表访问的作用相同。当您将值分配给表中不存在的索引时,解释器会查找 __newindex 元方法:如果有,解释器会调用它而不是进行赋值。与 __index 一样,如果元方法是一个表,解释器会将赋值操作执行在该表中,而不是在原始表中。此外,有一个原始函数允许您绕过元方法:调用 rawset(t, k, v) 会将值 v 设置为表 t 中键 k 的值,而不会调用任何元方法。

__index__newindex 元方法的组合使用允许在 Lua 中使用多种强大的结构,从只读表到具有默认值的表,再到面向对象编程的继承。在本章的其余部分,我们将看到其中一些用法。面向对象编程有其自己的章节。