使用可能なさまざまな整数データ型、それらの型、関連するモジュール、およびリテラル構文の比較を次に示します。
let int : int = Pervasives.abs(42);
let int32 : int32 = Int32.abs(42l);
let int64 : int64 = Int64.abs(42L);
let nativeint : nativeint = Nativeint.abs(42n);
は自動的に開かれるため、上記Pervasives
のように機能を修飾する必要はありません。
ìnt
はネイティブに 32 ビット プラットフォームでは 31 ビット、64 ビット プラットフォームでは 63 ビットであり、int32
、int64
またはによって提供される正確な算術セマンティクスが必要でない限り、使用する型ですnativeint
。In32
、Int64
、およびNativeint
すべてに次の (または同様の) メモが含まれています。
パフォーマンスに関する注意: int32 型の値は int 型の値よりも多くのメモリ空間を占有し、int32 の算術演算は int の算術演算よりも一般に遅くなります。int32 は、アプリケーションが正確な 32 ビット演算を必要とする場合にのみ使用してください。
それがあなたの質問に答えることを願っています。
編集: BuckleScript を使用して JavaScript にコンパイルする場合、これは Reason では非常に一般的ですが、セマンティクスはわずかに異なります。
int32
そしてint64
同じように振る舞う
int
のように振る舞うint32
nativeint
はほとんどの場合 のように扱わfloat
れますが、より整数のようになるいくつかの例外があります。
ソース: https://bucklescript.github.io/docs/en/difference-from-native-ocaml.html#integers