如何在OCaml中定义int64?

Jac*_*ale 3 ocaml

let i = 32会给我一个int32.

如果我想定义一个int64怎么办?

pio*_*kuc 10

let i = 32L 
Run Code Online (Sandbox Code Playgroud)

(在Objective Caml 3.07中引入的int64文字的后缀L)

并使用模块Int64:http://caml.inria.fr/pub/docs/manual-ocaml/libref/Int64.html 你应该真的使用谷歌...

  • 我所做的就是将您的问题标题复制粘贴到Google搜索表单中.我得到的第一页是Int64模块的文档.然后我通过添加'example'来调整搜索. (5认同)
  • 它也可能有助于扫描OCaml手册的内容和索引.我去了[内容页面](http://caml.inria.fr/pub/docs/manual-ocaml/manual001.html)并搜索了int64.答案立刻出现了. (2认同)

Tho*_*ash 5

let i = 32会给你一个type的值,int而不是int32

您可以int64通过在piokuc和user1034081指出的数字后加L 来获得一个值,但是我不确定这就是您想要的。你为什么要int64

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