我有这段代码:
type seed = {c: Graphics.color option; x : int; y : int };;
type voronoi = {dim : int * int; seeds : seed array};;
let v1 = {dim = 50,50; seeds = [| {c=Some Graphics.red; x=50; y=100}; |]}
当我尝试这个时:
v1.seeds.(0).c <- Some Graphics.green;;
我收到此错误:
The record field c is not mutable
我能做什么?
答案 0 :(得分:3)
记录字段是不可变的,除非另有声明。 OCaml参考手册(sect 1.5)表示
记录字段也可以通过赋值修改,只要它们在记录类型的定义中声明为
mutable
以下内容应该有效:
type seed = {mutable c: Graphics.color option; x : int; y : int }
答案 1 :(得分:1)
你应该这样写:
v1.seeds.(0) <- {c=Some Graphics.green;x=v1.seeds.(0).x;y=v1.seeds.(0).y};;