Heptagon 语言支持 record 数据结构。record 数据结构与 Scade struct 数据结构相似。对 record 结构的操作支持结构构造、record 成员访问,record 成员修改。
record 结构构造的形式如 {f1 = val; f2; val2}
。使用样例如
typet = {f1:int; f2:bool}
fun recordDef() returns (o: t)
leto = {f1 = 1; f2 = true};
tel
在该例子中,{f1 = 1; f2 = true}
为构造 record 的表达式。
record 成员访问的形式如 record . field
。使用样例如
type t = {f1:int; f2:bool}fun fieldAccess(i: t) returns (o: int)
leto = i.f1;
tel
在该例程中,i.f1
为访问 record i
中的 field f1
。
record 成员修改的形式如 { record with . field = new_val}
。该表达式输出 field 更新后的 record。
使用样例如
type t = {f1: int; f2: bool}fun modifyField(i: t) returns (o: t)
leto = { i with .f1 = 42 };
tel