假设您有类似的代码
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
?
答案 0 :(得分:2)
使用do_something_with_foo 99L
。
常量99
的类型为int
,99L
的类型为int64
。
这与类型别名foo_t = int64
无关。只要foo_t
的定义可见(即未被包含模块的签名掩盖),类型int64
的任何值也具有类型foo_t
,反之亦然。
答案 1 :(得分:1)
L letter很重要。
# 99L;;
- : int64 = 99L
# 99l;;
- : int32 = 99l
# 99;;
- : int = 99