Lua中的构造函数和析构函数?

我是Lua的新手,通过与其他编程语言(如Python和Java)进行比较来学习一些概念。我知道Java和python都有构造函数和析构函数。但是我没有找到一个纯Lua编写的。我看过一些使用C/C++与Lua一起编写构造函数的示例,但是否有任何方法可以仅使用Lua语言创建构造函数和析构函数?

点赞
用户3574628
用户3574628

构造函数是创建并返回对象的任何函数。要定义析构函数,您需要一个带有__gc元方法的元表。__gc元方法将在对象被垃圾回收时或程序结束时调用。

local mt = {
  -- 析构函数
  __gc = function(self)
    print('正在垃圾回收' .. self.name)
  end,
}

-- 构造函数
local function newObject(name)
  local o = {name = name}
  setmetatable(o, mt)
  return o
end
2020-10-25 20:46:11