【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言語の型は、メモリ効率や計算速度に直結する非常に重要な要素です。しっかりと基礎を理解して、効率の良いプログラムを書きましょう。