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 分钟前
9、Python面向对象编程-1
服务器·开发语言·python
say_fall2 分钟前
C++ 入门第一课:命名空间、IO 流、缺省参数与函数重载全解析
c语言·开发语言·c++
霸王大陆8 分钟前
《零基础学 PHP:从入门到实战》模块十一:成为 PHP 侦探,精通错误处理与调试实战大全-1
开发语言·笔记·php·课程设计
郝学胜-神的一滴10 分钟前
Python的内置类型:深入理解与使用指南
开发语言·python·程序人生
松☆13 分钟前
C语言--结构体
c语言·开发语言
关于不上作者榜就原神启动那件事17 分钟前
【java后端开发问题合集】
java·开发语言
LitchiCheng22 分钟前
Mujoco 蒙特卡洛采样统计机械臂可达工作空间(非Matlab)
开发语言·matlab
真正的醒悟23 分钟前
图解网络8
开发语言·网络·php
郝学胜-神的一滴28 分钟前
Linux信号集操作函数详解
linux·服务器·开发语言·c++·程序人生
落霞的思绪31 分钟前
基于Go开发的矢量瓦片服务器——pg_tileserv
开发语言·后端·golang