查看: 35|回复: 1

Lua 进阶核心——元表与元方法

[复制链接]

48

主题

75

回帖

1991

积分

金牌会员

积分
1991
QQ
发表于 2026-5-28 14:25:06 | 显示全部楼层 |阅读模式
作用:重载运算符、自定义表行为、实现面向对象、实现默认值、拦截读写。
高频元方法


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



0

主题

58

回帖

1350

积分

金牌会员

积分
1350
发表于 2026-5-28 16:08:02 | 显示全部楼层
收藏了,谢谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表