我是OCaml的新手。我想定义一个仅在一个函数中使用的类型。我不想让它在该功能之外可用。我们可以在该函数中定义它吗?或者还有其他方法可以达到同样的效果吗?
答案 0 :(得分:12)
如果您有最新版本的OCaml,则可以使用本地模块:
let f x =
let module Local = struct
type t = A | B
end in
...
在顶层定义类型并将其从.mli
中删除可能更为自然:尽管它会全局隐藏,但文件中的其他代码可以看到它。 / p>