例如,ATS中与C中的以下结构对应的类型的语法是什么:
struct{ char *name; int age; double height; }
此外,如何在ATS中构建这种类型的值?
答案 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中做同样的事情。