【Go言語】データ型一覧:Goで使える基本型と使用方法を解説

Go言語では、型が非常に重要です。すべての型は、静的型付けされており、型によって処理速度やメモリ使用量が変わることもあります。しっかりと基本を押さえ、効率の良いコードを書きましょう。
3行で要約すると
- Go言語の基本型には、int, uint, float32, float64, bool, stringがあり、それぞれの特徴がある。
- 複合型(Composite Types)として、Array, Slice, Map, Structが存在し、データを構造化する際に使う。
- Go言語では型変換が厳格で、型変換は明示的に行う必要があり、また型推論も利用できる。
基本型(Primitive Types)
intとuint
intとuintは、プラットフォームに依存します。32ビットシステムでは32ビット、64ビットシステムでは64ビットとなります。また、サイズを明示したい場合は、int8, int16, int32, int64などと指定できます。
var i int = -1
var j uint = 1
float32とfloat64
float32は約7桁、float64は約15桁の精度を持っています。計算精度が必要な場合はfloat64を、メモリを節約したい場合はfloat32を選びます。
var f1 float32 = 3.14
var f2 float64 = 3.141592653589793
bool
bool型は条件分岐によく用いられます。trueやfalseしか取らないため、メモリ使用量も少ないです。
var isActive bool = true
string
Goのstring型はイミュータブル(変更不可)です。このため、文字列を変更するたびに新しいメモリ領域が確保されます。
var greeting string = "Hello, World!"
複合型(Composite Types)
Array
配列は要素数が固定されているため、動的にサイズを変更することはできません。要素数が多くない場合や、要素数が事前に分かっている場合に便利です。
var numbers [5]int = [5]int{1, 2, 3, 4, 5}
Slice
Sliceは内部的に配列を使っていますが、サイズが動的に変わる点が特長です。多くの場合、Sliceが配列よりも使いやすいです。
var numbers []int = []int{1, 2, 3}
Map
Mapはハッシュテーブルに基づいたデータ構造で、高速なキーによるデータのアクセスが可能です。ただし、キーの順番は保証されていません。
var colors map[string]string = map[string]string{
"red": "#FF0000",
"green": "#00FF00",
}
Struct
structは異なる型のデータを一つの変数で扱いたい場合に使用します。オブジェクト指向プログラミングのような形でデータを構造化できます。
type Person struct {
Name string
Age int
}
var p Person = Person{Name: "John", Age: 30}
型変換と型推論
型変換
Go言語では、型変換は非常に厳格です。異なる型間での自動変換は行われず、プログラマーが明示的に型変換を指定する必要があります。これは、型に関連するバグを防ぐための設計です。型変換は型名(変数名)の形で書きます。
整数から浮動小数点数へ
var i int = 42
var f float64 = float64(i)
この例では、int型の変数iをfloat64型の変数fに変換しています。
文字列から数値へ
import "strconv"
s := "42"
i, err := strconv.Atoi(s)
if err == nil {
fmt.Println("Converted integer:", i)
} else {
fmt.Println("Conversion failed!")
}
この例では、strconvパッケージのAtoi関数を使用して、文字列を整数に変換しています。
型推論
Go言語では、:=演算子を使用して変数を宣言すると、右辺の式や値から変数の型を自動的に推論します。これはコードを短くし、タイプミスを減らす一方で、明示的な型宣言が必要な場合もあります。
整数の推論
i := 42 // int
この例では、42は整数なので、iはint型と推論されます。
浮動小数点数の推論
f := 3.14 // float64
この例では、3.14は浮動小数点数なので、fはfloat64型と推論されます。
複数の変数の推論
i, f, s := 42, 3.14, "hello"
この例では、i, f, sはそれぞれint, float64, string型と推論されます。
まとめ
以上がGo言語で使う基本的なデータ型とその詳細です。Go言語の型は、メモリ効率や計算速度に直結する非常に重要な要素です。しっかりと基礎を理解して、効率の良いプログラムを書きましょう。










