1、Lua的类对象
local myClass = {}
function myClass:new()
local self = {}
setmetatable(self,{__index = myClass})
end
local a = 0
local b = 0
local c = 0
return myClass
以上类的对象实例化的调用:
require "myClass"
local _myClass = myClass:new()
实例化后 _myClass.a、_myClass.b、_myClass.c的初始值均为nil
2、Lua的单例
lua的单例的本质其实就是一个全局的字段
myInstanceClass = {}
myInstanceClass_mt = {__index = myInstanceClass}
function myInstanceClass:new()
local self = {}
setmetatable(self,myInstanceClass_mt)
end
local a = 0
local b = 0
local c = 0
return myInstanceClass --在使用全局字段的单例中,这句返回值其实可有可无,因为是全局的,所以不需要返回值也能调用。
以上类的对象的调用:
require "myInstanceClass"
local _myInstanceClass1 = myInstanceClass:new()
local _myInstanceClass2 = myInstanceClass:new()
local _myInstanceClass3 = myInstanceClass:new()
实例化后 _myInstanceClass.a、_myInstanceClass.b、_myInstanceClass.c的初始值均为nil
任何时时候以下三个对象之一的值变化的时候_myInstanceClass1 、_myInstanceClass2 、_myInstanceClass3,另外两个对象的值也同时会变化。