4

let i = 32会给我一个int32

如果我想定义一个int64

4

3 回答 3

11
let i = 32L 

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

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

于 2013-04-25T14:23:39.497 回答
5

let i = 32会给你一个 typeint而不是的值int32

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

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

于 2013-04-25T14:34:48.693 回答
4

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

let i = 32L

导致: val i : int64 = 32L

于 2013-04-25T14:25:41.397 回答