Go での Int64 から Int への変換: 戦略と落とし穴
Go で数値型を扱う場合、数値型間の微妙な違いを理解することが重要です。彼ら。一般的なシナリオの 1 つは、int64 (64 ビット整数) を int (32 ビット整数) に変換する必要があることです。
型変換と比較
int64 を int に変換するには、式内のそれぞれのデータ型を使用して型変換を実行するだけです。例:
var a int64 var b int a = int64(b)
ただし、異なる型の値を比較する場合は注意が必要です。切り捨てられる可能性を避けるために、常に小さい型を大きい型に変換してください。例:
var x int32 = 0 var y int64 = math.MaxInt32 + 1 // y == 2147483648 if x < int32(y) { // This evaluates to false, because int32(y) is -2147483648 }
制限付きで Int64 を Int にキャスト
特定の例では、maxInt を int64 から int に変換するときにエラーが発生する場合、以下:
for a := 2; a < int(maxInt); a++ {
maxInt がオーバーフローすると、このコードは失敗します。システム上の int 型の最大値。この問題を回避するには、int64(a) < を使用します。 maxInt を使用して、比較が正しく実行されることを確認します。
堅牢で効率的な Go コードを作成するには、さまざまなデータ型と型変換のニュアンスを理解することが不可欠であることを覚えておいてください。
以上がGo で Int64 を Int に安全に変換する方法: オーバーフローと切り捨ての問題を回避するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。