OCaml 手册第 2 章说
\n\n\n一个结构体,由 struct\xe2\x80\xa6end 构造引入,该构造包含任意的定义序列。该结构通常通过模块绑定来命名。
\n
是否有创建结构体而不为其指定模块名称的用例。\n如果没有,那么我们总是使用
\nmodule Name =\n struct\n ...\n end\nRun Code Online (Sandbox Code Playgroud)\n所以 struct 关键字似乎有点多余。
\n使用无名结构是可能的,甚至是常见的(至少在我的代码中)。一个例子:
module MyStrSet =
Set.Make(struct type t = string let compare a b = compare b a end)
Run Code Online (Sandbox Code Playgroud)