Lua 模仿C++类

Lua类的声明与定义

在文件中"AInfoClass.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类对象

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

输出运行结果

id=1899,name=1899_Name,val=199
info.PrintInfo2 not exist !!

相关推荐

  1. Lua 模仿C++

    2023-12-16 07:20:02       42 阅读
  2. C/C++ - 模板

    2023-12-16 07:20:02       30 阅读
  3. Lua 时间工具

    2023-12-16 07:20:02       8 阅读
  4. C++ 模板

    2023-12-16 07:20:02       17 阅读
  5. C# 模板使用

    2023-12-16 07:20:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 07:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 07:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 07:20:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 07:20:02       20 阅读

热门阅读

  1. PHP中如何进行单元测试和集成测试?

    2023-12-16 07:20:02       43 阅读
  2. 力扣5. 最长回文子串

    2023-12-16 07:20:02       38 阅读
  3. 30天精通Nodejs--第十四天:MongoDB

    2023-12-16 07:20:02       42 阅读
  4. 虾皮Shopee API接口获取商品图片列表

    2023-12-16 07:20:02       46 阅读
  5. register_chrdev函数使用

    2023-12-16 07:20:02       39 阅读
  6. 微信小程序 - 龙骨图集拆分

    2023-12-16 07:20:02       37 阅读
  7. uniapp微信小程序下载base64图片流或https图片

    2023-12-16 07:20:02       41 阅读
  8. RHCL8_Linux_ansible的使用

    2023-12-16 07:20:02       39 阅读
  9. vue与angular以及react的区别

    2023-12-16 07:20:02       32 阅读