zoukankan      html  css  js  c++  java
  • 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,另外两个对象的值也同时会变化。

  • 相关阅读:
    CSpinButtonCtrl控件的使用
    JS基础语法
    JS
    层级,hover
    Html&Css
    定位
    制作静态网页
    查看trunk端口
    配置vlan trunk
    js日期的写法,获取girdviw的行数、提示信息、验证数量信息
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/7566490.html
Copyright © 2011-2022 走看看