$"从 对应 中删除 " 个和 相同的元素。" 为
+ 时候删除全部
!!从 的头部删除元素,并返回删除元素。如果 对应 不存在或者是空返
回 ,如果 对应值不是 返回错误
!!同上,但是从尾部删除
&!!$从左到右扫描返回对第一个非空 进行 !! 操作并返回,
比如 &!!(0+如果 不存在
(0 都是非空则对 ( 做 !! 并返回从 ( 中删除的元素。如果所有的 都是
空或不存在,则会阻塞 $ 秒,$ 为 + 表示一直阻塞。
当阻塞时,如果有 " 对 中的任意 进行 ! 操作,则第一在这个
上被阻塞的 " 会立即返回。如果超时发生,则返回 。有点像 . 的 " 或
者 !
&!!同 &!!,一个是从头部删除一个是从尾部删除
!!!"从 " 对应 的尾部移除元素并添加到 对应
的头部最后返回被移除的元素值,整个操作是原子的如果 " 是空
或者不存在返回
4. set
的 是 类型的无序集合。 元素最大可以包含( 的 0( 次方 个元素。
的是通过 & 实现的,所以添加,删除,查找的复杂度都是 > 。
& 会随着添加或者删除自动的调整大小。需要注意的是调整 & 大小时候需要
同步(获取写锁)会阻塞其他读写操作。可能不久后就会改用跳表(!)来实现
跳表已经在 中使用了。关于 集合类型除了基本的添加删除操作,其他有用
的操作还包含集合的取并集 ,交集" ,
差集#" 。通过这些操作可以很容易的实现 中的好友推荐和 & 的 功能。
下面详细介绍 相关命令
$$&添加一个 元素到 对应的 集合中,成功返回 如果元
素以及在集合中返回 + 对应的 不存在返回错误
$$$&从 对应 中移除给定元素,成功返回 ,如果 $$& 在集
合中不存在或者 不存在返回 +,如果 对应的不是 类型的值返回错误
!!删除并返回 对应 中随机的一个元素如果 是空或者 不存在返回
$$&同 !!,随机取 中的一个元素,但是不删除元素
$"$$&从 " 对应 中移除 $$& 并添加到
对应 中,整个操作是原子的。成功返回 如果 $$& 在 " 中不存在返回 +,
如果
不是 类型返回错误
"返回 的元素个数,如果 是空或者 不存在返回 +
$$&$$&判断 $$& 是否在 中,存在返回 ,+ 表示不存在或
者 不存在
(返回所有给定 的交集
同 ,但是会同时将交集存到 下
(返回所有给定 的并集
同 ,并同时保存并集到 下
#(返回所有给定 的差集