Go言語で型変換を行う方法
Go 言語では、型変換は、あるデータ型の変数を別の型の変数に変換するために使用されます。構文は「type_name(expression)」です。「type_name」は型名、「expression」は変換する必要がある値である式。
このチュートリアルの動作環境: Windows10 システム、GO 1.11.2、thinkpad t480 コンピューター。
Go 言語の型変換
型変換は、あるデータ型の変数を別の型の変数に変換するために使用されます。 Go 言語の型変換の基本形式は次のとおりです。
type_name(expression)
type_name は型、expression は式です。
例
次の例では、整数型を浮動小数点型に変換し、結果を計算し、その結果を浮動小数点変数に代入します。 :
package main import "fmt" func main() { var sum int = 17 var count int = 5 var mean float32 mean = float32(sum)/float32(count) fmt.Printf("mean 的值为: %f\n",mean) }
上記の例の実行の出力結果は次のとおりです:
mean 的值为: 3.400000
型変換は、値の範囲が小さい型から変換するなど、定義が正しい場合にのみ成功します。より大きな値の範囲を持つ型に変換します (int16 を int32 に変換します)。より大きな範囲の型からより小さな範囲の型に変換するとき (int32 から int16 または float32 から int に変換)、精度の損失 (切り捨て) が発生します。
同じ基礎となる型の変数のみを相互に変換できます (int16 型を int32 型に変換するなど)。異なる基礎となる型の変数を相互に変換すると、コンパイル エラーが発生します。 bool 型を int 型に変換します).):
package main import ( "fmt" "math" ) func main() { // 输出各数值范围 fmt.Println("int8 range:", math.MinInt8, math.MaxInt8) fmt.Println("int16 range:", math.MinInt16, math.MaxInt16) fmt.Println("int32 range:", math.MinInt32, math.MaxInt32) fmt.Println("int64 range:", math.MinInt64, math.MaxInt64) // 初始化一个32位整型值 var a int32 = 1047483647 // 输出变量的十六进制形式和十进制值 fmt.Printf("int32: 0x%x %d\n", a, a) // 将a变量数值转换为十六进制, 发生数值截断 b := int16(a) // 输出变量的十六进制形式和十进制值 fmt.Printf("int16: 0x%x %d\n", b, b) // 将常量保存为float32类型 var c float32 = math.Pi // 转换为int类型, 浮点发生精度丢失 fmt.Println(int(c)) }
コードの説明は次のとおりです:
行 11 ~ 14 は、いくつかの一般的な整数の数値範囲を出力します。種類。
17 行目で、int32 型の変数 a を宣言し、初期化します。
19 行目では、fmt.Printf の %x 動詞を使用して値を 16 進形式で出力しており、変換前の a の 32 ビット値を出力しています。
22行目、aの値をint16型に変換、つまり32ビット符号付き整数型から16ビット符号付き整数型に変換します。 type 値の範囲が int32 型より小さいため、値は切り捨てられます (精度が失われます)。
行 24 は、変換された a 変数値 (b の値) を出力します。これも 16 進数と 10 進数の形式で出力されます。
行 27, math.Pi は math パッケージの定数です。デフォルトでは型がありません。参照される実際の型に基づいて自動的に推定されます。ここで math は.Pi は変数.c に代入されているため、型は float32 です。
29行目、float32をint型に変換して出力します。
コード出力は次のとおりです。
int8 range: -128 127 int16 range: -32768 32767 int32 range: -2147483648 2147483647 int64 range: -9223372036854775808 9223372036854775807 int32: 0x3e6f54ff 1047483647 int16: 0x54ff 21759 3
出力結果によると、16 ビット符号付き整数の範囲は -32768 ~ 32767 で、その値は変数 a、1047483647 はこの範囲内にありません。 1047483647 の対応する 16 進値は 0x3e6f54ff ですが、int16 型に変換すると長さが半分に短縮、つまり 16 進数で半分に切られて 0x54ff となり、対応する 10 進値は 21759 となります。
浮動小数点数を整数に変換すると、小数部分が削除され、整数部分のみが残ります。
推奨学習: Golang チュートリアル
以上がGo言語で型変換を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

SQL.Openを使用する場合、DSNがエラーを報告しないのはなぜですか? GO言語では、sql.open ...
