ホームページ >バックエンド開発 >Golang >Go で Int64 を Int に安全に変換する方法: オーバーフローと切り捨ての問題を回避するためのガイド

Go で Int64 を Int に安全に変換する方法: オーバーフローと切り捨ての問題を回避するためのガイド

DDD
DDDオリジナル
2024-11-12 18:52:02775ブラウズ

How to Safely Convert Int64 to Int in Go: A Guide to Avoiding Overflow and Truncation Issues

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。