函子 Weak.Make

module Make: 
functor (H : Hashtbl.HashedType-> S with type data = H.t

构建弱哈希集结构实现的函子。 H.equal 不能是物理相等性,因为只将其在集合中的元素的浅拷贝提供给它。

参数
H : Hashtbl.HashedType

type data 

存储在表中的元素的类型。

type t 

包含类型为 data 的元素的表的类型。请注意,弱哈希集不能使用 output_valueMarshal 模块的函数进行封送。

val create : int -> t

create n 创建一个新的空弱哈希集,初始大小为 n。表将根据需要增长。

val clear : t -> unit

从表中移除所有元素。

val merge : t -> data -> data

merge t x 返回在 t 中找到的 x 的实例(如果存在),否则将 x 添加到 t 并返回 x

val add : t -> data -> unit

add t xx 添加到 t。如果 t 中已经存在 x 的实例,则后续对 findmerge 的调用将返回哪个实例是不确定的。

val remove : t -> data -> unit

remove t xt 中移除一个 x 的实例。如果 t 中不存在 x 的实例,则不执行任何操作。

val find : t -> data -> data

find t x 返回在 t 中找到的 x 的实例。

val find_opt : t -> data -> data option

find_opt t x 返回在 t 中找到的 x 的实例,如果不存在这样的元素则返回 None

val find_all : t -> data -> data list

find_all t x 返回在 t 中找到的所有 x 实例的列表。

val mem : t -> data -> bool

mem t x 如果 t 中至少存在一个 x 的实例,则返回 true,否则返回 false。

val iter : (data -> unit) -> t -> unit

iter f t 以某种未指定的顺序对 t 的每个元素调用 f。如果 f 尝试更改 t 本身,则未指定会发生什么。

val fold : (data -> 'acc -> 'acc) -> t -> 'acc -> 'acc

fold f t init 计算 (f d1 (... (f dN init))),其中 d1 ... dNt 中的元素,以某种未指定的顺序排列。如果 f 尝试更改 t 本身,则未指定会发生什么。

val count : t -> int

计算表中元素的数量。 count t 给出的结果与 fold (fun _ n -> n+1) t 0 相同,但不会延迟已删除元素的释放。

val stats : t -> int * int * int * int * int * int

返回有关表的统计信息。这些数字按顺序排列:表长度、条目数、桶长度之和、最小桶长度、中位数桶长度、最大桶长度。