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,另外两个对象的值也同时会变化。