我是OCaml的新手,我正在努力理解它的概念mutable record field.
我想创建一个记录数组,该记录包含一个布尔可变字段.所以我做了类似的事情:
type t = {i: int; mutable b: bool};;
Run Code Online (Sandbox Code Playgroud)
我希望能够更改记录的'b'字段的值,所以我把它 mutable
let m = Array.make 10 ({i = 5; b = false});;
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试设置位于我的数组的第一个索引处的记录的b字段:
(Array.get m 0).b <- true;;
Run Code Online (Sandbox Code Playgroud)
问题是我想要它,它将设置数组的所有记录的'b'字段,这不是我想要的.
同一记录的可变字段是否共享相同的内存位置?如何更改特定记录的"b"字段的值?