基本的な型キャスト
メニューを表示するにはスワイプしてください
型キャストは、データをあるデータ型から別のデータ型に変換する処理。 ただし、すべてのデータ型間で変換が可能なわけではない点に注意が必要。たとえば、floatをintに、またその逆に変換することは可能。しかし、stringをintに変換することは意味がなく、不可能。
型変換または型キャストには2種類が存在。そのうちの1つが暗黙的型キャスト。暗黙的型キャストは、Goが安全かつ明確な場合に自動的に型を変換するもの。たとえば、整数値をfloat型の変数に代入すると、自動的にfloatとして扱われる。変換時にデータが失われることがないため(10は10.0と同じ):
index.go
1var myFloat float32 = 10 // A valid statement
もう一つの型変換の方法は、明示的型変換です。これは、プログラマーがデータや式を明示的にある型から別の型へ変換する場合に発生します。明示的型変換の構文は desiredType(expression) です。例えば次のようになります。
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
上記のプログラムでは、float32 の値を明示的型変換によって int に変換しています。その結果、元の数値の小数部分は切り捨てられ、整数値 7 のみが number2 に格納されます。この場合、数値の小数部分(0.9)という一部のデータが失われることに注意が必要です。しかし、この選択は明示的に行っています。
同様に、rune を string に変換することもできます。Runes の章では、Rune の値(数値)を出力するプログラムを紹介しましたが、Rune を文字列に変換することで、その文字として表示することができます。
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
しかし、string を rune に変換することはできません。
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
また、1文字を含む文字列をルーン型に変換することもできない点に注意。
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください