let i = 32
会给我一个int32
。
如果我想定义int64
?
答案 0 :(得分:9)
let i = 32L
(Objective Caml 3.07中引入的int64文字的后缀L)
并使用模块Int64:http://caml.inria.fr/pub/docs/manual-ocaml/libref/Int64.html 你应该真的使用谷歌...
答案 1 :(得分:5)
let i = 32
会为您提供int
类型的值,而不是int32
。
您可以通过在piokuc和user1034081指出的数字后面添加一个L来获得int64
值,但我不确定这是您想要做的。为什么要int64
?
OCaml有一个与其他语言不同的整数的内部表示,它将它们存储在31或63位(取决于您的体系结构),因为它需要额外的GC。我没有充分的理由使用int64
(即您想在OCaml中使用C代码或在C中使用OCaml代码),请使用int
类型。
答案 2 :(得分:4)
您可以为int64指定后缀'L':
let i = 32L
导致:val i:int64 = 32L