一天三盒半 发表于 2026-5-28 14:25:06

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、面向对象继承。


555666888 发表于 2026-5-28 16:08:02

收藏了,谢谢分享!
页: [1]
查看完整版本: Lua 进阶核心——元表与元方法