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