Lua 进阶核心——元表与元方法
作用:重载运算符、自定义表行为、实现面向对象、实现默认值、拦截读写。高频元方法:
[*]__index:读取不存在的键时触发
[*]__newindex:写入新键时触发
[*]__add/__sub/__mul 等:运算符重载
[*]__call:让表可以像函数一样调用
[*]__tostring:自定义打印格式
示例:拦截表读写
local t = {}
setmetatable(t, {
__index = function() return "无此键" end,
__newindex = function(t, k, v) print("禁止写入:", k) end
})
print(t.name)--> 无此键
t.age = 18 --> 禁止写入: age实战用途:数据校验、只读表、ORM、面向对象继承。
收藏了,谢谢分享!
页:
[1]