
使用 rpop *** 作可以将列表中的元素从右边d出,如果列表中所有元素都被d出,那么列表空了。此时再使用 lpush *** 作是无法添加元素的,它会返回 0 表示添加失败。
需要注意的是,使用 rpop *** 作d出元素会不可逆地从列表中移除这个元素,而不是单纯的将元素标记为被删除,所以清空列表之后使用lpush *** 作再添加元素需要保证在清空列表之后才能进行。如果在清空列表之前使用 lpush *** 作添加元素,元素会被添加到标记为删除的元素位置,导致数据错误。
建议在 Lua 脚本中加入检查机制,确保列表已经全部清空后再进行lpush *** 作,以避免数据错误
用lua封装成类似c++中map的功能方法:实现代码如下:
1、stl_map.lua //创建一个stl_map
2、map = {} //初始化为空
3、创建一个map
function map:new()
local object = {}
setmetatable(object, self)
self.__index = self
--用一个table来保存key
self.__keyList = {}
return object
end
4、使用:
插入元素[如果已存在该key,则不做改动,和STL一致]
function map:insert(key, value)
if(self[key] == nil) then
self[key] = value
table.insert(self.__keyList, key)
end
return self
end
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)