Lua面向对象 实现 超具体表明 实现构造函数,析构函数,只读类模板等功能

[复制链接]
发表于 2025-12-10 06:07:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Lua面向对象 实现 超具体表明 实现构造函数,析构函数,只读类模板等功能

源码

  1. -- 注意下面的代码可以拆开成多个文件使用,也可以放一起
  2. -- Class.lua
  3. local _class = {
  4.    
  5.    }
  6. -- 将Source变成只读表并返回
  7. function MakeTableReadOnly(Source)
  8.     local proxy = {
  9.    
  10.    }
  11.     local mt = {
  12.    
  13.    }
  14.     mt.__index = Source
  15.     mt.__newindex = function()
  16.         print("ReadOnly!")
  17.     end
  18.     setmetatable(proxy,mt)
  19.     return proxy
  20. end
  21. -- 返回class_type作为类模板,类模板可用来创建对象
  22. function class(super)
  23.     local class_type = {
  24.    
  25.    }
  26.     -- ctor为构造函数
  27.     class_type.ctor = false
  28.     -- close为析构函数
  29.     class_type.close = false
  30.     -- super为父类,也是一个class_type
  31.     class_type.super = super
  32.     -- 类模板提供一个创建类实例的方法
  33.     class_type.new = function(...)
  34.         -- object为返回的类实例
  35.         local object = {
  36.    
  37.    }
  38.         -- create用于从父类一直递归的调用构造函数,c是class_type
  39.         local create
  40.         create =
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表