Module OCaml模块中的私有值?

Module OCaml模块中的私有值?,module,ocaml,private,Module,Ocaml,Private,是否可能有一个let绑定(无论是函数、值等),它是私有的,从外部看不到 假设我们有A.ml: let exported=1 设局部=2 我只希望导出的可以从其他模块访问B.ml: 让a=a导出 让error=A.local(*这应该是错误*) 类似于让%private合理地执行的操作。这就是签名和mli文件背后的动机:它们允许向外部世界隐藏信息,只公开API的相关部分,而不公开实现细节。在你的情况下,看起来 (* A.ml *) let exported = 1 let local = 2

是否可能有一个
let
绑定(无论是函数、值等),它是私有的,从外部看不到

假设我们有
A.ml

let exported=1
设局部=2
我只希望导出的
可以从其他模块访问<代码>B.ml

让a=a导出
让error=A.local(*这应该是错误*)

类似于
让%private
合理地执行的操作。

这就是签名和mli文件背后的动机:它们允许向外部世界隐藏信息,只公开API的相关部分,而不公开实现细节。在你的情况下,看起来

(* A.ml *)
let exported = 1
let local = 2

然后,只有导出的
A.ml
之外才可见。是的,这就是文件级别的用途

简要说明,添加一个
A.mli
,然后将要导出的定义放入其中:

val导出:int
(* A.mli *)
val exported: int