【问题标题】:Mutable fields of records with multiple files具有多个文件的记录的可变字段
【发布时间】:2013-03-19 00:17:37
【问题描述】:

我正在处理多个文件,但我遇到了一个可变字段的问题。 在 file1.ml 中,我声明:

type mytype = {
     mutable numbers : int list;
}

所以,在 file2.ml 中,我有 mytype 类型的元素。但是,当我尝试制作时:

myElement.numbers

返回如下错误:Error: Unbound record field label numbers。

谢谢,欢迎任何帮助。

【问题讨论】:

  • 一种思考方式是,您定义的不是记录,而是记录选择器。所以当你使用选择器时,你必须声明它的完整路径。

标签: functional-programming ocaml mutable imperative-programming


【解决方案1】:

使用来自 file2 的完全限定名称:myElement.File1.numbers

或将open File 添加到您的文件中。

或使用本地模块打开let open File2 in myElement.numbers

【讨论】:

  • 使用第一个选项!但是,我忘记解释我的 File1.ml 有一个模块,而 myType 被插入到“myModule”中。如何使用“打开文件”修复它? “打开我的模块”?
  • 您应该可以使用open File1.myModule。从风格上讲,最好在您的代码中只在全球范围内使用很少的 open。否则,您必须努力使您的命名空间没有冲突的名称。如果您刚开始使用 OCaml,您可以稍后再考虑。
  • 请注意,这个“问题”应该会在 OCaml 的未来版本中消失(我上次尝试时开发树中已经有工作代码)。
猜你喜欢
  • 2013-04-14
  • 2023-03-10
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 2015-12-11
  • 2017-10-31
相关资源
最近更新 更多