golang int変換

王林
リリース: 2023-05-16 10:03:38
オリジナル
738 人が閲覧しました

Golang は、簡潔な構文と高速なコンパイル速度を備え、同時プログラミングやネットワーク プログラミングに適した、近年注目を集めているプログラミング言語です。 Golang では、データ型変換を実行する必要があることがよくありますが、最も一般的なのは整数 (int) 変換です。この記事ではGolangにおけるint型変換について詳しく解説します。

  1. Golang の整数型

Golang には 4 つの整数型があります:

  • int8: 符号付き 8 ビット整数型、値範囲 -128~127
  • int16: 符号付き 16 ビット整数型、値の範囲 -32768~32767
  • int32: 符号付き 32 ビット整数型、値の範囲 -2147483648~2147483647
  • int64: 符号付き 64 ビット整数、値の範囲 -9223372036854775808~9223372036854775807

さらに、Golang は、対応する符号なし整数型も提供します。ルールは uint に対応する桁数を加えたものです。 uint8、uint16、uint32、uint64 など。

  1. int 型から他のデータ型への変換

Golang の型変換では、一律に toType() 関数が使用されます。ここで、toType() 関数は、必要な変数の型です。変換するときは、ターゲット型がソース型の値の範囲を完全に収容できることを確認する必要があります。

以下では、例として int 型から float32 および float64 型への変換を取り上げます。

2.1 int から float32 への変換

float32 の値の範囲がより大きいため、 int 型なので、int 型を float32 に直接変換できます。これを実現するには、次のコードを使用します。

func intToFloat32(i int) float32 {
    return float32(i)
}
ログイン後にコピー

2.2 int を float64 に変換する

同様に、int 型を float64 に直接変換することもできます。これを実現するには、次のコードを使用します。

func intToFloat64(i int) float64 {
    return float64(i)
}
ログイン後にコピー
  1. 他の型のデータを int 型に変換する

Golang では、toType() を使用して他の型を変換することもできます。データ型を int type.関数に変換できますが、ソース型の値の範囲がターゲット型の値の範囲より大きい場合、変換プロセス中に精度が失われる可能性があることに注意してください。

以下では、float32 型と float64 型を int 型に変換する例を説明します。

3.1 float32 を int に変換する

# float32 を int に変換するため、変換前に判断することが最善です。次のコードを使用してそれを実現できます:

func float32ToInt(f float32) int {
    if f > math.MaxInt32 {
        return math.MaxInt32
    }
    if f < math.MinInt32 {
        return math.MinInt32
    }
    return int(f)
}
ログイン後にコピー

3.2 float64 を int に変換する

#同じ理由で、float64 型を int 型に変換するには、精度の判断も必要です。次のコードを使用して実現できます:

func float64ToInt(f float64) int {
    if f > math.MaxInt32 {
        return math.MaxInt32
    }
    if f < math.MinInt32 {
        return math.MinInt32
    }
    return int(f)
}
ログイン後にコピー
    要約
Golang では、整数型の変換は非常に一般的です。ただし、変換中にターゲットを保証する必要があることに注意してください。型はソース型の値の範囲を完全に収容できますが、そうでない場合は精度の損失などの問題が発生する可能性があります。必要に応じて、変換実装の関数をカスタマイズすることもできます。

以上がgolang int変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート