Jac*_*ale 0 ocaml functional-programming
假设我有两个.ml文件:A.ml和B.ml.
在A.ml,我有
type my_type = {id_ary : int array; sz_ary : int array};;
Run Code Online (Sandbox Code Playgroud)
在B.ml,我有
let test_my_type {id_ary;_} = id_ary.(0) <- 10;;
Run Code Online (Sandbox Code Playgroud)
然后我像这样编译它们
ocamlc -linkpkg A.ml B.ml -o C
Run Code Online (Sandbox Code Playgroud)
但编译器给出了这样的错误: Error: Unbound record field label id_ary
似乎B无法使用my_type来自的类型A.
我该怎么办?
值得一提的是,你可以只使用A.id_ary在B.ml.使用open是避免重复的便利A..但是,open由于它合并了两个名称空间,因此也是一件相当激烈的事情.我个人试图避免使用open除了我的项目中的一些非常基本的模块.
最近的OCaml版本具有两个符号的"本地化"打开:
# String.(length "abc");;
- : int = 3
# let open String in length "abc";;
- : int = 3
Run Code Online (Sandbox Code Playgroud)
这些都不那么激烈了,我宁愿他们走向全球化open.
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |