第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于更高版本,但有一些差异。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还可以帮助支持 Lua 项目。
用 Lua 编程 | ||
第二部分。表和对象 第 13 章。元表和元方法 |
__newindex
元方法__newindex
元方法对表更新的作用与 __index
对表访问的作用相同。当您将值分配给表中不存在的索引时,解释器会查找 __newindex
元方法:如果有,解释器会调用它而不是进行赋值。与 __index
一样,如果元方法是一个表,解释器会将赋值操作执行在该表中,而不是在原始表中。此外,有一个原始函数允许您绕过元方法:调用 rawset(t, k, v)
会将值 v
设置为表 t
中键 k
的值,而不会调用任何元方法。
__index
和 __newindex
元方法的组合使用允许在 Lua 中使用多种强大的结构,从只读表到具有默认值的表,再到面向对象编程的继承。在本章的其余部分,我们将看到其中一些用法。面向对象编程有其自己的章节。
版权所有 © 2003–2004 Roberto Ierusalimschy。保留所有权利。 |