说A.ml B.ml C.ml D.ml都需要定义一些相同的类型
type a = ...
type b = ...
由于我不想要重复的代码,我将这些类型定义放在一个文件Shared_type.ml
中,我将在A.ml,B.ml中执行Open Shared_type
有没有更好,更优雅的方法来处理这个问题?此外,我觉得我的底层设计可能有问题。有哪些可能的改进?
答案 0 :(得分:1)
是的,您应该将这些声明放在仅包含声明的Shared.mli
文件中,而不是定义(您将在Shared.ml
中给出定义)。这在§2.5 modules & seperate compilation
PS我强烈建议您在编写OCaml中的任何严重事项之前,先阅读完全 ocaml manual。