ホームページ  >  記事  >  バックエンド開発  >  golang 変数の型変換

golang 変数の型変換

王林
王林オリジナル
2023-05-14 18:24:37799ブラウズ

Go 言語は静的に型付けされた言語です。つまり、変数の型は使用する前に定義する必要があります。既存の変数の型を別の型に変換する必要がある場合がありますが、この記事では golang の変数の型変換に関する関連知識を紹介します。

golang では、型変換は明示的な変換を通じて実装されます。つまり、開発者は、どの型をどの型に変換するかをコンパイラーに明示的に伝える必要があり、それによって潜在的な型安全性の問題を回避できます。

Golang の変数の型変換には主に次の 2 種類があります:

  1. 基本的な型変換
  2. カスタマイズされた型変換

1. 基本型変換

golang では、int、float、string などの基本型はすべて型変換をサポートしており、開発者は組み込みの変換関数を使用して、ある基本型を別の基本型に変換できます。

1. 整数型の変換

golang では、整数型には int8、int16、int32、int64、uint8、uint16、uint32、uint64 などが含まれます。整数変数をある型から別の型に変換する必要がある場合は、組み込みの変換関数を使用できます。

以下は int32 型を int64 型に変換する例です:

var a int32 = 100
var b int64
b = int64(a)

ここでは、int32 型の変数 a を int64 型の変数 b に変換します。大範囲型変換は自動的に実行できますが、大範囲型から小範囲型への変換には変換関数を明示的に呼び出す必要があります。

2. 浮動小数点型変換

golang では、浮動小数点型には float32 と float64 が含まれます。浮動小数点変数をある型から別の型に変換する場合、組み込みの変換を使用することもできます。機能。

以下は float32 型を float64 型に変換する例です:

var a float32 = 3.14159
var b float64
b = float64(a)

ここでは、float32 型の変数 a を float64 型の変数 b に変換しています。変換は自動的に実行できますが、大範囲タイプから小範囲タイプへの変換には、変換関数を明示的に呼び出す必要があります。

3. 文字列型の変換

文字列を他の型の変数に変換することも一般的で、Golang には次のような組み込みの変換関数が用意されています。文字列を数値変数に変換する場合は、文字列が数値に正しく変換できることを確認する必要があります。そうしないと、実行時エラーが発生します。

2. カスタム型変換

golang ではカスタム型も型変換でき、対応する型変換関数を実装するだけで済みます。

カスタム型の型変換は、次のような特定の条件を満たす必要があります:

1. カスタム型 T は型である必要があります

2. 型 T には基礎となる型があります、基になる型をポインター型またはインターフェイス型にすることはできません

3.基になる型と T は相互に変換できます

次はカスタム型変換の例です:

a := "1234"
b, err := strconv.Atoi(a)   //将字符串转换成int类型的变量
c, err := strconv.ParseFloat(a, 64)  //将字符串转换成float64类型的变量
d := strconv.Itoa(1234)   //将int类型的变量转换成字符串
e := strconv.FormatFloat(3.14159, 'E', -1, 64)  //将float64类型的变量转换成字符串

この例では、摂氏と華氏の 2 つの型を定義し、2 つの型変換関数 CToF と FtoC を定義します。 main 関数では、これら 2 つの型変換関数を使用して、摂氏型から華氏型への変換、および華氏型から摂氏型への変換を行っています。

カスタム型で型変換を実行するときは、型変換中にデータが失われたり破損したりしないように、型安全性の問題に注意する必要があることに注意してください。

概要

golang では、型変換は主に明示的な変換によって行われ、ある基本型を別の基本型に変換したり、カスタム型を別のカスタム型に変換したりできます。型変換を実行するときは、型安全性の問題に注意して、変換プロセス中にデータが失われたり破損したりしないようにし、潜在的な型安全性の問題を回避する必要があります。

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

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