Go データ型
以下に Go 言語のすべての組み込み型をリストします。詳細は リファレンスマニュアル - 型 をご覧ください。
布尔型
布尔型には真値と偽値のみがあります。
| 型 | 説明 |
|---|---|
bool | true は真値、false は偽値 |
TIP
Go では、整数 0 は偽値を表さず、非ゼロ整数も真値を表しません。つまり、数値はブール値の代わりに論理判断に使用できず、両者は完全に異なる型です。
整数型
Go では、異なるビット数の整数のために異なる型が割り当てられています。主に符号なし整数型と符号付き整数型に分かれます。
| 番号 | 型と説明 |
|---|---|
uint8 | 符号なし 8 ビット整数型 |
uint16 | 符号なし 16 ビット整数型 |
uint32 | 符号なし 32 ビット整数型 |
uint64 | 符号なし 64 ビット整数型 |
int8 | 符号付き 8 ビット整数型 |
int16 | 符号付き 16 ビット整数型 |
int32 | 符号付き 32 ビット整数型 |
int64 | 符号付き 64 ビット整数型 |
uint | 符号なし整数型 少なくとも 32 ビット |
int | 整数型 少なくとも 32 ビット |
uintptr | 符号なし 64 ビット整数型と同等ですが、ポインタ演算用に専用され、ポインタアドレスを格納するために使用されます。 |
浮動小数点型
IEEE-754 浮動小数点数。主に単精度浮動小数点数と倍精度浮動小数点数に分かれます。
| 型 | 説明 |
|---|---|
float32 | IEEE-754 32 ビット浮動小数点数 |
float64 | IEEE-754 64 ビット浮動小数点数 |
複素数型
| 型 | 説明 |
|---|---|
complex128 | 64 ビット実数と虚数 |
complex64 | 32 ビット実数と虚数 |
文字型
Go 言語の文字列は完全に UTF-8 と互換性があります。
| 型 | 説明 |
|---|---|
byte | uint8 と同等で、ANSII 文字を表現できます |
rune | int32 と同等で、Unicode 文字を表現できます |
string | 文字列はバイトシーケンスで、[]byte 型(バイトスライス)に変換できます |
派生型
| 型 | 例 |
|---|---|
| 配列 | [5]int、長さ 5 の整数型配列 |
| スライス | []float64、64 ビット浮動小数点数スライス |
| マップ | map[string]int、キーが文字列型、値が整数型のマップ |
| 構造体 | type Gopher struct{}、Gopher 構造体 |
| ポインタ | *int、整数型ポインタ。 |
| 関数 | type f func()、パラメータなし、戻り値なしの関数型 |
| インターフェース | type Gopher interface{}、Gopher インターフェース |
| チャネル | chan int、整数型チャネル |
ゼロ値
公式ドキュメントではゼロ値を zero value と呼んでいます。ゼロ値は単に数字の 0 だけでなく、型の空値またはデフォルト値と言う方がより正確です。
| 型 | ゼロ値 |
|---|---|
| 数値型 | 0 |
| 布尔型 | false |
| 文字列型 | "" |
| 配列 | 固定長さの対応する型のゼロ値コレクション |
| 構造体 | 内部フィールドがすべてゼロ値の構造体 |
| スライス、マップ、関数、インターフェース、チャネル、ポインタ | nil |
nil
nil は他の言語の none や null に似ていますが、同等ではありません。nil は一部の参照型のゼロ値のみで、どの型にも属していません。ソースコードから nil が単なる変数であることがわかります。
go
var nil Typeまた、nil == nil のようなステートメントはコンパイルできません。
