module type S =sig
..end
函子 Weak.Make
的输出签名。
type
data
存储在表中的元素类型。
type
t
包含类型为 data
的元素的表的类型。注意,弱哈希集不能使用 output_value
或 Marshal
模块中的函数进行序列化。
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 x
将 x
添加到 t
。如果 t
中已存在 x
的实例,则后续对 find
和 merge
的调用将返回哪个实例是未指定的。
val remove : t -> data -> unit
remove t x
从 t
中删除 x
的一个实例。如果 t
中没有 x
的实例,则不执行任何操作。
val find : t -> data -> data
find t x
返回在 t
中找到的 x
的实例。
Not_found
如果没有这样的元素。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 ... dN
是 t
中的元素,按某个未指定顺序排列。如果 f
尝试更改 t
本身,则未指定会发生什么。
val count : t -> int
计算表中元素的数量。 count t
给出与 fold (fun _ n -> n+1) t 0
相同的结果,但不延迟对已死元素的释放。
val stats : t -> int * int * int * int * int * int
返回有关表的统计信息。这些数字按顺序为:表长度、条目数、桶长度总和、最小桶长度、中位桶长度、最大桶长度。