如何在OCaml中定义int64?

如何在OCaml中定义int64?,ocaml,Ocaml,let i=32将给我一个int32 如果我想定义一个int64 let i = 32L (Objective Caml 3.07中引入的int64文字后缀L) 并使用模块Int64: 您也应该使用google…您可以为int64指定后缀“L”: let i = 32L 导致:val i:int64=32Llet i=32将为您提供类型为int而非int32的值 您可以通过在piokuc和user1034081指出的数字后添加L来获得int64值,但我不确定您是否希望这样做。为什么要int

let i=32
将给我一个
int32

如果我想定义一个
int64

let i = 32L 
(Objective Caml 3.07中引入的int64文字后缀L)

并使用模块Int64:
您也应该使用google…

您可以为int64指定后缀“L”:

let i = 32L

导致:val i:int64=32L

let i=32
将为您提供类型为
int
而非
int32
的值

您可以通过在piokuc和user1034081指出的数字后添加L来获得
int64
值,但我不确定您是否希望这样做。为什么要
int64

let i = 32L 

OCaml有一个不同于其他语言的整数的内部表示,它将整数存储在31位或63位(取决于您的体系结构),因为它需要一个额外的位用于GC。如果你没有很好的理由使用
int64
(即,你想在OCaml中使用C代码或在C中使用OCaml代码),请使用
int
类型。

不,
let I=32
不会给你一个
int32
,它会给你一个
int
。用谷歌搜索这样的后缀确实很难。我从谷歌得到的只是那个int64页面我所做的只是把你问题的标题复制粘贴到谷歌搜索表单中。我得到的第一页是Int64模块的文档。然后,我通过添加“示例”来调整搜索。这也可能有助于扫描OCaml手册的内容和索引。我去搜索int64。答案马上就出现了。我会在这里表示一点异议,我认为在这里问相对容易的谷歌问题是可以的。stackoverflow上的答案比手册页更容易找到(即使使用谷歌)。他们通常也会带来很多有趣的相关信息。我在某种程度上同意,这取决于具体情况。这就是为什么我没有否决这个问题,而是回答了这个问题。让I=32l将导致int32I实际上我正在用ocaml编写一个bson编码器/解码器,它需要int32和int64。