如何pcall在 Lua 中调用类方法?
我试过了,pcall(instance:method, arg)但没有用。
我也尝试过,pcall(instance.method, instance, arg)但这也不起作用。
我用谷歌搜索了一个解决方案,但我找不到。
一个例子:
local ValueOwnerMap = {}
ValueOwnerMap.__index = ValueOwnerMap
function ValueOwnerMap:create(key_prefix)
local instance = {}
setmetatable(instance, ValueOwnerMap)
instance.key = key_prefix .. ':value-owner-map'
return instance
end
function ValueOwnerMap:get(value)
return redis.call('HGET', self.key, value)
end
function ValueOwnerMap:put(value, owner_id)
return redis.call('HSETNX', self.key, value, owner_id)
end
function ValueOwnerMap:del(value)
return redis.call('HDEL', self.key, value)
end
local value_owner_map = ValueOwnerMap:create('owner:key')
local success, data = pcall(value_owner_map:put, 'a_value', 'a_owner_id')
Run Code Online (Sandbox Code Playgroud)
instance:method(arg)是糖instance.method(instance,arg)。所以试试
pcall(value_owner_map.put, value_owner_map, 'a_value', 'a_owner_id')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |