Ocaml 类型中的 Int of Int
Int of Int in Ocaml types
在一个作业中,我有两个用户定义的类型。输入 a 使用 INT of int
,输入 b 使用 Int of int
。据我了解,这意味着这两种类型都可以接受 int
作为该类型的一部分。有什么方法可以在类型a和b之间进行转换吗?我试过像
这样的类型转换
let typeA = INT 5
let typeB = Int 5
let cast = INT(typeB)
但这会引发类型不匹配错误。
OCaml 是一种强类型语言,因此通常无法 "type cast" 从一种类型到另一种类型。
但是,您可以编写将一种类型转换为另一种类型的函数。例如,有一个名为 float_of_int
的内置函数可以将 float 转换为 int。还有 int_of_float
(丢弃浮点值的任何小数部分)。
您可以轻松地以类似的精神编写函数以在两种类型之间进行转换。
下面是一些代码,其中包含您需要的所有想法(我认为):
type mytype = MyConstructor of int
let increment (MyConstructor x) = MyConstructor (x + 1)
在一个作业中,我有两个用户定义的类型。输入 a 使用 INT of int
,输入 b 使用 Int of int
。据我了解,这意味着这两种类型都可以接受 int
作为该类型的一部分。有什么方法可以在类型a和b之间进行转换吗?我试过像
let typeA = INT 5
let typeB = Int 5
let cast = INT(typeB)
但这会引发类型不匹配错误。
OCaml 是一种强类型语言,因此通常无法 "type cast" 从一种类型到另一种类型。
但是,您可以编写将一种类型转换为另一种类型的函数。例如,有一个名为 float_of_int
的内置函数可以将 float 转换为 int。还有 int_of_float
(丢弃浮点值的任何小数部分)。
您可以轻松地以类似的精神编写函数以在两种类型之间进行转换。
下面是一些代码,其中包含您需要的所有想法(我认为):
type mytype = MyConstructor of int
let increment (MyConstructor x) = MyConstructor (x + 1)