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 A6. 複数の定数宣言
複数の定数宣言は、ブロックとしてグループ化することで可読性を高めることができます。
コード例:
package main
import ("fmt")
const (
A int = 1
B = 3.14
C = "ハイ!"
)
func main() {
fmt.Println(A)
fmt.Println(B)
fmt.Println(C)
}