require 'class' dict = class("dict") function dict:__init__(t) self.value = t or {} end function dict:__eq(value) if #self.value == 0 and #value.value == 0 then return true end return self.value == value.value end function dict:exist(key) print("dict:exist", key.value) for dict_key, dict_value in pairs(self.value) do if dict_key == key.value then return true end end return false end function dict:__getattr__(key) return self.value[key] end function dict:__setattr__(key, value) self.value[key] = value end function dict:pop(key, ...) if self.exist(key) == true then local v = self.value[key] self.value[key] = nil return v else return ... end end function dict:iteritems() local function _ipairs(t, var) var = var + 1 local value = t[var] if value == nil then return end return var, value end return _ipairs, self.value, 0 end function dict:__pairs() return pairs(self.value) end