我是OCaml的新手。我想定义一个只用于一个函数中的类型。我不想在该函数之外使用它。我们可以在该函数内定义吗?或者有其他方法可以实现相同的功能吗?
我对OCaml不熟悉,但根据给定的文本理解,您可以在该函数内定义类型,也可以使用模块和私有类型来实现该目的。我是OCaml的新手。我想定义一个只用于一个函数中的类型。我不想在该函数之外使用它。我们可以在该函数内定义吗?或者有其他方法可以实现相同的功能吗?
我对OCaml不熟悉,但根据给定的文本理解,您可以在该函数内定义类型,也可以使用模块和私有类型来实现该目的。如果你有最近版本的OCaml,你可以使用本地模块:
let f x =
let module Local = struct
type t = A | B
end in
...
或许更自然的方法是在顶层定义类型并将其从.mli
文件中省略掉:这样可以使其全局隐藏,但其他代码在文件中仍然可以看到它。