记录类型中的数组

问题描述 投票:2回答:1

我想定义一个记录类型,其中一个成员是类型数组,如下所示:

 type h = {x:int; y:int; pic : Array of int};;

这会在of位置给出语法错误:

 type h = {x:int; y:int; pic : Array *of* int};;

现在,如果我使用中间类型命名Array of int,它的工作原理如下:

 type a = Array of int;;
 type h = {x:int; y:int; pic : a};;

这是一个缺陷还是我想念某事? (我的ocaml版本是4.05.0)

然后,一旦定义了type h,我就无法使用它:

 let n = {x=0;y=0;pic=[| 0 |]};;

我收到了错误:

 Error: This expression has type 'a array but an expression was expected of type
     a
arrays ocaml record
1个回答
3
投票

ints数组的类型是int arraytype a = Array of int定义了一个带有单个构造函数Array的变体,它带有int类型的有效载荷。

© www.soinside.com 2019 - 2024. All rights reserved.