我在Ocaml中构建一个编译器,我遇到了一个问题..我有一个名为value的变量,这个变量应该接收任何类型的ocaml类型(int,float,char或bool),但我不能做它..
type info = {
initialized: bool;
mutable value : int;
}
我尝试创建一个这样的新类型:
type tipos = int
| float
| char
| bool
并将信息定义为:
type info = {
initialized: bool;
mutable value : tipos;
}
但它仍然不起作用..
任何人都可以帮助我吗?谢谢。
答案 0 :(得分:3)
您需要适用于不同变体的构造函数。这样的事情至少会更接近工作:
type tipos = Int of int | Float of float | Char of char | Bool of bool
然后类型的值如下所示:
# Int (3 * 5);;
- : tipos = Int 15
# Float (3.2 /. 2.0);;
- : tipos = Float 1.6
# Char 'a';;
- : tipos = Char 'a'
# Bool true;;
- : tipos = Bool true