zoukankan      html  css  js  c++  java
  • lua 元表,监控变量赋值及访问,并自动保存

    g_local_data = {}
    
    local local_data_real = {}
    
    local mt = {
         __index = function (t, k)
    --         print("access to element " .. tostring(k))
             return local_data_real[k]
         end,
      
         __newindex = function (t, k, v)
      --       print("update of element " .. tostring(k))
             local_data_real[k] = v
             saveLocalData()
         end
     }
    
    setmetatable(g_local_data, mt)
    
    
    cjson = require("cjson")
    
    local filename = UserData.account .. ".data"
    
    filename = string.gsub(filename , ":" , "_")
    filename = CCFileUtils:sharedFileUtils():getWritablePath() .. filename
    
    function saveLocalData()
        local fout = io.open(filename , "w")
        if not fout then
            print("write flie err!")
            return 
        end
    
        local data = cjson.encode(local_data_real)
        
        fout:write(data)
    
        fout:close()
    end
    
    function readLocalData()
        local fin = io.open(filename , "r")
        if not fin then
            return 
        end
    
        local data = fin:read("*a")
        local_data_real = cjson.decode(data)
    
        fin:close()
    end
    
    --读入数据
    readLocalData()
    

      

    Stay hungry, stay foolish!
  • 相关阅读:
    kafka----简单的脚本命令重点
    kafka简单学习----遇到的问题
    nc简单使用
    kafka-sparkstreaming---学习1
    sparkStream---1
    装系统
    spark入门备忘---1
    linux---学习3
    MySql-5.7.17-20解压缩版安装配置
    springboot动态定时任务
  • 原文地址:https://www.cnblogs.com/JhonKing/p/5790981.html
Copyright © 2011-2022 走看看