2.3 定数
定数は、値が変更不可能であることを保証する。
code:go
package main
import "fmt"
const x int64 = 10
func main() {
const y = "hello"
x = x + 1 // @<ttb>{コンパイルできない!}
y = "bye" // @<ttb>{コンパイルできない!}
}
ただし、他の言語と違い機能が限られている。
Goの定数はリテラルに名前を付けるためのもの。代入できるのは以下。
数値リテラル
true およびfalse
文字列
rune
次にあげる組み込みの関数の結果
complex
real
imag
len
cap
上であげた値と演算子から構成される式
変数が変更不可能であることを宣言する方法はない。以下はコンパイル時にエラーとなる。
code:go
package main
func main() {
x := 5
y := 10
const z = x + y // x + y (value of type int) is not constant
}