コンテンツにスキップ

Go/宣言済識別子

出典: フリー教科書『ウィキブックス(Wikibooks)』
< Go

Go言語における宣言済識別子(Predeclared identifiers)は、言語の仕様として最初から定義されている名前のことです。これらはパッケージをインポートすることなく、どこでも直接使用できます。

大きく分けて以下の4つのカテゴリーに分類されます。

型 (Types)

[編集]

基本データ型を定義する識別子です。用途や性質ごとに分類されます。

カテゴリ 識別子
整数型 int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr
浮動小数点型 float32, float64
複素数型 complex64, complex128
その他の基本型 bool, string
別名 byteuint8uint8の別名), runeint32の別名)
インターフェース型(Go 1.18以降含む) any(空のインターフェースinterface{}の別名), error, comparable

定数 (Constants)

[編集]

真偽値や特殊な状態を表す定数です。

  • true / false: 論理値の真と偽。
  • iota: const 宣言内で使用される、0から始まる連続した型なし整数。
  • nil: ポインタ、インタフェース、マップ、スライス、チャネル、関数の「ゼロ値(未定義状態)」を表す。

関数

[編集]

インポートなしで呼び出せる便利な関数群です。

特殊な用途

[編集]
  • _ (ブランク識別子): 値を破棄したり、インポートしたパッケージの初期化のみを行いたい場合に使用されます。

⚠️ 注意点:シャドウイング(Shadowing)

[編集]

Goの宣言済識別子は「予約語(Keyword)」とは異なります。iffor は変数名に使えませんが、intappend技術的には変数名として再定義できてしまいます。

// 悪い例:宣言済識別子を上書き(シャドウイング)
int := 10 
fmt.Println(int) // intが型ではなく変数として扱われてしまう

このように、宣言済識別子を変数名や関数名に使うとコードが非常に混乱するため、避けるのが鉄則です。