Go 速習チュートリアル

Go 言語の定数

1. Goの定数 (Go Constants)

一度設定したら変更できない固定値を変数に持たせたい場合は、const キーワードを使用します。

const キーワードは、その変数を「定数(Constant)」として宣言します。これは、値が変更不可能(Unchangeable)であり、読み取り専用(Read-only)であることを意味します。

構文(Syntax)

const CONSTNAME type = value

       注意: 定数の値は、宣言時に必ず代入する必要があります。

2. 定数の宣言 (Declaring a Constant)

Goで定数を宣言する例を見てみましょう。

コード例:

package main
import ("fmt")

const PI = 3.14

func main() {
  fmt.Println(PI)
}

3. 定数のルール (Constant Rules)

  • 定数名の命名規則は、変数(Variables)のルールと同じです。
  • 一般的に、定数名はすべて大文字(Uppercase)で記述されます(変数と簡単に区別し、識別しやすくするため)。
  • 定数は、関数の内部と外部の両方で宣言可能です。

4. 定数の型 (Constant Types)

定数には以下の2つのタイプがあります。

  • 型指定ありの定数 (Typed constants)
  • 型指定なしの定数 (Untyped constants)

4.1 型指定ありの定数 (Typed Constants)

明示的にデータ型を定義して宣言された定数です。

コード例:

package main
import ("fmt")

const A int = 1

func main() {
  fmt.Println(A)
}

4.2 型指定なしの定数 (Untyped Constants)

型を指定せずに宣言された定数です。

コード例:

package main
import ("fmt")

const A = 1

func main() {
  fmt.Println(A)
}

       注意: この場合、定数の型は値からインファレンス(型推論)されます(コンパイラが値に基づいて型を決定します)。

5. 定数:変更不可かつ読み取り専用

定数を一度宣言すると、後からその値を変更することはできません。

エラーになる例:

package main
import ("fmt")

func main() {
  const A = 1
  A = 2 // ここでエラーが発生します
  fmt.Println(A)
}

実行結果:

./prog.go:8:7: cannot assign to A

6. 複数の定数宣言

複数の定数宣言は、ブロックとしてグループ化することで可読性を高めることができます。

コード例:

package main
import ("fmt")

const (
  A int = 1
  B = 3.14
  C = "ハイ!"
)

func main() {
  fmt.Println(A)
  fmt.Println(B)
  fmt.Println(C)
}