当在 Ocamel 中查看模块文档时,例如在图形模块中会出现类似的内容
val close_graph : unit -> unit
Run Code Online (Sandbox Code Playgroud)
或者以交互模式编写函数时:
# let x () = 3;;
val x : unit -> int = <fun>
Run Code Online (Sandbox Code Playgroud)
有val x : unit -> int = <fun>
,它是什么val
以及它的用例是什么?
嗯,val
是 OCaml 中的一个关键字,有多种不同的用途。
您提到的情况本质上都是val
在模块签名中使用来指定模块中出现的值。值就像函数和表达式一样。(类型是不能出现在模块中的值的一个示例。)
您可以在OCaml 手册中阅读有关模块签名的内容。
非终结符规范的第一个变体是以 开头的val
。
(在顶层,您在输入定义时创建一个模块。因此顶层使用签名样式语法来显示您定义的内容。无论如何,在我看来。)