概要
今回のブログポストではGolangで定数を宣言して使う方法について説明します。Golangで変数を宣言して使う方法について分からない方は、下記のリンクを参考してください。
このブログポストで紹介するソースコードは下記のリンクを確認できます。
定数
定数は変数とは違って設定した値を変更することができません。Golangで定数を使う方法を調べるためmain.go
ファイルを生成して下記のように修正します。
package main
import "fmt"
func main() {
const num int = 10
fmt.Println(num)
}
Golangでは下記のようにconst
キーワードを使って定数を宣言します。
// const 定数名 タイプ = 初期値
const value int = 10
定数は初期値を省略することができる変数とは違って初期化を必ずする必要があります。そうしないと、コンパイルエラーが発生します。
const value int = 10
value = 20 // ERROR
1回初期化された定数は再び値を設定することができません。値を設定するとコンパイルエラーが発生します。
定数のタイプ
定数も変数ようにタイプを指定しなくて省略することができます。しかし、定数は変数と違って定数を使う時点でタイプが決定されます。
func main() {
const PI = 3.14
var a int = PI * 100
fmt.Println(a)
}
Golangでは同じタイプだけ演算ができます。したがってfloat
タイプである3.14とint
タイプである100は掛け算ができません。しかし、定数にタイプを指定してなかったので、定数を使う時点でタイプが決定され、上のコードはコンパイルエラーが発生しないです。
func main() {
const PI float32 = 3.14
var a int = PI * 100 // ERROR
fmt.Println(a)
}
しかし、上のように定数とタイプを一緒に定義すると、タイプが違うと判断されコンパイルエラーが発生します。
func main() {
var PI = 3.14
var a int = PI * 100 // ERROR
fmt.Println(a)
}
変数は定数と違って変数を宣言する時、タイプが決定されます。したがって、上のように定数の代わりで変数を使うとコンパイルエラーが発生します。
列挙型
Golangでは定数を次のように列挙型(Enum)でよく使います。
const (
Red int = 0
Blue int = 1
Green int = 2
)
func main() {
fmt.Println(Red)
fmt.Println(Blue)
fmt.Println(Green)
}
プログラムを実行すると次のような結果が確認されます。
0
1
2
iota
Golangでは次のようにiota
キーワードを使ってもっと簡単に列挙型定数を生成することができます。
const (
Red int = iota
Blue int = iota
Green int = iota
)
func main() {
fmt.Println(Red)
fmt.Println(Blue)
fmt.Println(Green)
}
繰り返して使ってるタイプとiota
は下記のように省略できます。
const (
Red int = iota
Blue
Green
)
また、タイプも省略が出来って下記のようにもっと簡単に宣言することができます。
const (
Red = iota
Blue
Green
)
完了
これでGolangで定数を宣言して使う方法についてみてみました。また、iota
を使って列挙型定数を生成する方法もみてみました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。