Ocaml类型中Int的Int



在一个赋值中,我有两个用户定义的类型。类型a使用INT of int,类型b使用Int of int。据我所知,这意味着这两种类型都可以接受int作为该类型的一部分。有什么方法可以在类型a和类型b之间转换吗?我试过像这样的打字

let typeA = INT 5
let typeB = Int 5
let cast = INT(typeB)

但这会引发类型不匹配错误。

OCaml是一种强类型语言,因此通常无法从一种类型"类型转换"到另一种类型。

但是,您可以编写一个函数,将一种类型转换为另一种类型。例如,有一个名为float_of_int的内置函数,它将浮点值转换为int。还有int_of_float(它丢弃浮点值的任何小数部分(。

您可以以类似的精神轻松地编写函数,以便在两种类型之间进行转换。

这里有一些代码包含了你需要的所有想法(我认为(:

type mytype = MyConstructor of int
let increment (MyConstructor x) = MyConstructor (x + 1)

相关内容

  • 没有找到相关文章

最新更新