针对 Ruby 的高效、不可变、线程安全的集合类
Hamster 提供了 6 种高效、不可变且线程安全的集合类,适用于 Ruby。Hamster 提供了 6 种 持久数据结构:Hash[HASH-DOC]、Vector[VECTOR-DOC]、Set[SET-DOC]、SortedSet[SORTED-SET-DOC]、List[LIST-DOC] 和 Deque[DEQUE-DOC](可作为不可变队列或堆栈使用)。
Hamster 集合是 不可变的。每当您修改一个 Hamster 集合时,原始集合会被保留,并返回一个修改后的副本。这使得它们本质上是线程安全的,可共享的。同时,它们通过在副本之间共享来实现 CPU 和内存的高效利用。
Hamster 集合几乎总是在给定操作下关闭的。也就是说,虽然 Ruby 的集合方法总是返回数组,但 Hamster 集合将尽可能返回同一类的实例。在可能的情况下,Hamster 集合提供与 Ruby 内置 Hash、Array 和 Enumerable 兼容的接口,以便简化代码迁移。此外,Hamster 方法接受普通 Ruby 集合作为参数,因此使用 Hamster 的代码可以很容易地与您的其他 Ruby 代码进行交互。最后,Hamster 列表是懒加载的,这使得 (除其他外) 可以处理"无限大"的列表。
暂无开放 Issues,或尚未同步最近议题。