如何在ATS中构建元组/记录?

时间:2016-10-21 01:36:16

标签: ats

例如,ATS中与C中的以下结构对应的类型的语法是什么:

struct{ char *name; int age; double height; }

此外,如何在ATS中构建这种类型的值?

1 个答案:

答案 0 :(得分:0)

这是翻译:

@{ name= string, age= int, height= double }

这种类型的值可以构造如下:

val x = @{name = "hello", age= 3, height= 2.0}

但请注意,这不是字面翻译。
例如,C类型char*是指向char的指针,通常表示零终止的UTF-8字符串,它映射到ATS中的类型string。但是,在其他情况下,它可能意味着缓冲区。

另外,请注意,在C中,您通常会逐个字段地初始化记录(也就是说,您声明了记录类型的变量,然后逐个分配其字段)。
如果您准备好处理类型检察官的投诉,您可以在ATS中做同样的事情。