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 !!
相关推荐
Reuuse几秒前
【网络基础概念】
开发语言·网络·php
程序员敲代码吗1 分钟前
DVR设备FTP更新故障及修复指南
服务器·开发语言·php
Never_Satisfied1 分钟前
在JavaScript / HTML中,获取指定元素的父元素
开发语言·javascript·html
zh路西法2 分钟前
【C语言简明教程提纲】(三):字符串与编译预处理
c语言·开发语言
wjs20244 分钟前
CSS 伪类详解
开发语言
sichuanwuyi6 分钟前
wydevops——最佳应用场景解析
java·开发语言·云原生·云计算·paas·devops
晚枫歌F6 分钟前
跳表Skip List以及实现代码C语言
c语言·开发语言
少控科技6 分钟前
C#基础学习 - 中国民族编码资源代码
开发语言·c#
宵时待雨6 分钟前
C++笔记归纳8:stack & queue
开发语言·数据结构·c++·笔记·算法
小年糕是糕手8 分钟前
【35天从0开始备战蓝桥杯 -- Day2】
开发语言·jvm·数据库·c++·程序人生·考研·蓝桥杯