编辑代码

print("Hello, World")
local TABLE_USER = "user"
local ts = {}

ts[TABLE_USER] = {
    name = TABLE_USER,
	primary_key	= {
		value	= {"user_id"},
		gen		= function(user_id)
			local t = {}
			t["user_id"] = user_id
			return t
		end
	},
	_attribute = {
		user_id 		= function(v)
			return nil, tonumber(v), tonumber(v)
		end,
		account_id		= function(v)
			return nil, tonumber(v), tonumber(v)
		end,
		name			= function(v)
			return "", tostring(v), tostring(v)
		end,
		gender			= function(v)
			return 1, tonumber(v), tonumber(v)
		end
    }
}
local m = {
    __index = function(t, key)
    print("no such key ".. key)
        if key == "struct" then
            t[key] = {}
            for k, v in pairs(t._attribute) do
                t[key][k] = function(value)
                    local default, _, _ = t._attribute[k](value)
                    return default
                end
            end
            return t[key]
        elseif key == "readCheck" then
            t[key] = {}
            for k, v in pairs(t._attribute) do
                t[key][k] = function(value)
                print(value)
                    local a, readValue, c = t._attribute[k](value)
                print(a, readValue, c, k)
                    print(k, readValue)
                    return readValue
                end
            end
            return t[key]
        elseif key == "writeCheck" then
            t[key] = {}
            for k, v in pairs(t._attribute) do
                t[key][k] = function(value)
                    local _, _ , writeValue = t._attribute[k](value)
                    return writeValue
                end
            end
            return t[key]
        else
            return nil
        end
    end
}
setmetatable(ts[TABLE_USER], m)
print(ts[TABLE_USER].struct["gender"]())
print("=============================")
print(ts[TABLE_USER].struct["gender"]())
print("=============================")
print(ts[TABLE_USER].readCheck["account_id"](32132321))
print("=============================")
print(ts[TABLE_USER].readCheck["account_id"](32132321))
print("=============================")
print(ts[TABLE_USER].writeCheck["name"]("ccc"))
print("=============================")
print(ts[TABLE_USER].writeCheck["name"]("ccc"))