OCaml:为什么要使用自定义数据类型?
OCaml: Why use custom data types?
为什么我们使用自定义数据类型,例如:
type vegetables = (string * classification)
我可以用吗?我可以创建一个 vegetables
列表吗?
这不是自定义数据类型,而只是一个类型别名,就像我们命名值一样,例如,
let pi = 3.14
let country = "USA"
我们可以为类型命名,以便于阅读和理解代码,例如,
type point = float * float
type range = float
type vegetables = (string * classification)
别名只是表示我们为 string
和 classification
对命名为 vegetables
。我们可以通过新名称或旧名称来引用此类型,这并不重要,尽管新名称更短且信息量更大。
您可以使用相同的语法 [<elt1>; <elt2>; ...; <eltN>]
在 OCaml 中构建任何类型的元素列表,并且在 OCaml 中使用以下语法创建元素对,例如 (<x>,<y>)
.
对列表还有一种特殊的语法,即[<x1>,<y1>; <x2>,<y2>; ...; <xN>,<yN>]
,例如
let locations : point list = [
1.2, 3.4;
5.6, 7.8;
pi, 0.1;
]
为什么我们使用自定义数据类型,例如:
type vegetables = (string * classification)
我可以用吗?我可以创建一个 vegetables
列表吗?
这不是自定义数据类型,而只是一个类型别名,就像我们命名值一样,例如,
let pi = 3.14
let country = "USA"
我们可以为类型命名,以便于阅读和理解代码,例如,
type point = float * float
type range = float
type vegetables = (string * classification)
别名只是表示我们为 string
和 classification
对命名为 vegetables
。我们可以通过新名称或旧名称来引用此类型,这并不重要,尽管新名称更短且信息量更大。
您可以使用相同的语法 [<elt1>; <elt2>; ...; <eltN>]
在 OCaml 中构建任何类型的元素列表,并且在 OCaml 中使用以下语法创建元素对,例如 (<x>,<y>)
.
对列表还有一种特殊的语法,即[<x1>,<y1>; <x2>,<y2>; ...; <xN>,<yN>]
,例如
let locations : point list = [
1.2, 3.4;
5.6, 7.8;
pi, 0.1;
]