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 !!
相关推荐
勤劳的进取家1 分钟前
传输层基础
运维·开发语言·学习·php
wangbing11254 分钟前
Java处理csv文件总是丢数据
java·开发语言·python
Rust语言中文社区5 分钟前
【Rust日报】2026-04-28 Pacquet:pnpm 的 Rust 重写版本
开发语言·后端·rust
modelmd14 分钟前
研究C语言的hello world输出
c语言·开发语言·chrome
小小199216 分钟前
vue 单页面请求
开发语言·前端·javascript
hhb_61816 分钟前
JavaScript 本地存储与动态数据渲染实战案例
开发语言·javascript·ecmascript
淀粉肠kk23 分钟前
【C++11】智能指针详解
开发语言·c++
kyriewen1133 分钟前
Next.js部署:从本地跑得欢,到线上飞得稳
开发语言·前端·javascript·科技·react.js·前端框架·ecmascript
AI人工智能+电脑小能手33 分钟前
【大白话说Java面试题】【Java基础篇】第21题:HashMap和Hashtable的区别是什么
java·开发语言·面试·哈希算法·散列表·hash table
不想写代码的星星36 分钟前
COW(Copy-on-Write):开抄开抄,哎嘿,我装的
开发语言·c++