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
返回表格的統計資訊。數字依序為:表格長度、條目數量、儲存桶長度總和、最小儲存桶長度、中位數儲存桶長度、最大儲存桶長度。