• Lua类对象和类对象的单例


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

  • 相关阅读:
    用.net开发wap
    MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
    收藏一下这个微软MVP的老外博客
    第三篇:Django的路由系统
    第二篇:Django自定义登录功能
    第一篇:Django简介
    json和pickle序列化模块
    oracle 11gr2 rac修改VIP
    修改监听端口号
    删除磁盘组
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/7566490.html
Copyright © 2020-2023  润新知