9

我是 OCaml 的新手。我想定义一种仅在一个函数中使用的类型。我不想让它在该功能之外可用。我们可以在该函数中定义它吗?还是有其他方法可以达到同样的效果?

4

1 回答 1

13

如果你有最新版本的 OCaml,你可以使用本地模块:

let f x =
  let module Local = struct
    type t = A | B
  end in
  ...

在顶层定义类型并将其排除在外可能更自然.mli:尽管它对文件中的其他代码可见,但这将使其全局隐藏。

于 2013-11-07T08:05:03.863 回答