OCaml中的类型整数常量

时间:2014-04-21 16:46:48

标签: type-conversion ocaml type-inference

假设您有类似的代码

type foo_t = int64 

let do_something_with_foo (f : foo_t) = (* left to your imagination *)

你想用一个常量“foo”来调用它,就像这样:

do_something_with_foo 99

如何说服编译器/解释器你的常数99实际上是foo_t

2 个答案:

答案 0 :(得分:2)

使用do_something_with_foo 99L。 常量99的类型为int99L的类型为int64

这与类型别名foo_t = int64无关。只要foo_t的定义可见(即未被包含模块的签名掩盖),类型int64的任何值也具有类型foo_t,反之亦然。

答案 1 :(得分:1)

L letter很重要。

# 99L;;
- : int64 = 99L
# 99l;;
- : int32 = 99l
# 99;;
- : int = 99