Lua 模仿C++类

Lua类的声明与定义

在文件中"AInfoClass.lua"声明并定义一个Lua类。

Lua 复制代码
local AInfoClass = {}

function AInfoClass.New(id)
    local tempTab = {}
    tempTab.id = id

    setmetatable(tempTab, {__index = AInfoClass})

    tempTab:InitClass()
  
    return tempTab
end

function AInfoClass:InitClass()
    self.name = tostring(self.id .."_Name")
    self.val = self:GetValue()
end

function  AInfoClass:GetValue()
    return 199
end

function AInfoClass:PrintInfo()
    local str = string.format("id=%s,name=%s,val=%s", self.id, self.name,self.val)
    print(str)
end

return AInfoClass

Lua 类的使用

在新的文件中"ATestClass.lua"声明定义一个Lua类对象

Lua 复制代码
local AInfoClass = require("AInfoClass")

local info = AInfoClass.New(1899)
info:PrintInfo()

---判断info.PrintInfo2 是否存在
if info.PrintInfo2 then
    print("info.PrintInfo2 exist !!")
else
    print("info.PrintInfo2 not exist !!")
end

输出运行结果

Lua 复制代码
id=1899,name=1899_Name,val=199
info.PrintInfo2 not exist !!
相关推荐
张较瘦_21 分钟前
[论文阅读] 软件工程 | 解决Java项目痛点:DepUpdater如何平衡依赖升级的“快”与“稳”
java·开发语言·论文阅读
HalvmånEver34 分钟前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
杜子不疼.35 分钟前
【C++】深入拆解二叉搜索树:从递归与非递归双视角,彻底掌握STL容器的基石
开发语言·c++
天若有情67336 分钟前
从零实现轻量级C++ Web框架:SimpleHttpServer入门指南
开发语言·前端·c++·后端·mvc·web应用
weixin_4565881543 分钟前
JVM(java虚拟机)
java·开发语言·jvm
hygge99944 分钟前
JVM 内存结构、堆细分、对象生命周期、内存模型全解析
java·开发语言·jvm·经验分享·面试
小二·1 小时前
Java虚拟机(JVM)面试题(51道含答案)
java·开发语言·jvm
无敌最俊朗@1 小时前
03-事务高频面试总结
java·开发语言·jvm
hygge9991 小时前
类加载机制、生命周期、类加载器层次、JVM的类加载方式
java·开发语言·jvm·经验分享·面试
mjhcsp2 小时前
C++ 三分查找:在单调与凸函数中高效定位极值的算法
开发语言·c++·算法