模块类型 Weak.S

module type S = sig .. end

函子 Weak.Make 的输出签名。


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

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