zoukankan      html  css  js  c++  java
  • Lua面线对象学习

    --[[
        
    ]]
    
    local userdata = {}
    local Register = {}
    
    function Register:del(key)
        userdata[self.namespace][key] = nil
    end
    
    function Register:get(key)
        if userdata[self.namespace][key] ~= nil then
            return userdata[self.namespace][key]
        else
            return false
        end
    end
    
    function Register:set(key, value)
        userdata[self.namespace][key] = value
        return true
    end
    
    function Register:new()
        if namespace == nil then
            namespace = 'default'
        end
        if userdata[namespace] == nil then
            userdata[namespace] = {}
        end
        local instance = {
            namespace = namespace,
            del = self.del,
            get = self.get,
            set = self.set
        }
        setmetatable(instance, Register)
        return instance
    end
    
    function Register:__newindex(key, value)
        if key ~= nil and value ~= nil then
            userdata[self.namespace][key] = value
        end
    end
    
    function Register:__index(index)
        local out = rawget(userdata[self.namespace], index)
        if out then
            return out
        else
            return false
        end
    end
    
    return Register
  • 相关阅读:
    小故事
    设计模式
    git分支
    git简单操作
    ab命令压力测试
    libcheck ARM交叉编译
    libxml2 ARM 交叉编译
    I.MX6 安装LTIB
    为ARM编译Glib
    QT 4.8 中文显示问题
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/5699975.html
Copyright © 2011-2022 走看看