定数とiota
変わらない値には const
手数料率のように、プログラムの途中で変わってほしくない値があります。
Go
const FeeRate = 0.1const で作った値は、後から書き換えられません。
Go
FeeRate = 0.2 // エラー: cannot assign to FeeRate書き換える気が無いことをコードで宣言できます。読む人は「この値はどこかで変わるかも」と疑わなくて済みます。
var との違い
Go
var rate = 0.1 // 後から変えられる
const rate = 0.1 // 変えられない迷ったら、まず const で書いてみてください。変える必要が出たときにコンパイラが教えてくれます。逆は教えてくれません。
まとめて定義する
Go
const (
FeeRate = 0.1
MaxPrice = 1000000
ServiceName = "fleama"
)設定値をまとめておくと、変更するとき1か所を見れば済みます。
iota で連番を作る
商品の状態のように、種類を表す値を作りたいことがあります。
Go
const (
StatusDraft = 0
StatusOnSale = 1
StatusSoldOut = 2
)数字を手で書くと、途中に1つ足したときに全部ずれます。これを自動にするのが iota です。
Go
const (
StatusDraft = iota // 0
StatusOnSale // 1
StatusSoldOut // 2
)iota は const のまとまりの中で 0 から始まり、1行ごとに1ずつ増えます。2行目からは書かなくても続きます。
途中に足しても、番号は自動でずれてくれます。
Go
const (
StatusDraft = iota // 0
StatusReview // 1 ← 足した
StatusOnSale // 2 自動でずれる
StatusSoldOut // 3
)数字のままでは読みにくい
iota で作るのは数字なので、そのまま表示しても意味が分かりません。
プレーンテキスト
状態: 2状態の名前をどう表示するかは、条件分岐を学ぶ第3章で扱います。ここでは、定数を宣言して値を表示するところまで練習します。
この回の練習では
初期コードの main の中に、次の2行を書きます。
Go
const FeeRate = 0.1
fmt.Println(FeeRate)プレーンテキスト
0.1const で宣言した値も fmt.Println に渡せます。今回は1つの定数を使います。
要件
mainの中でconst FeeRate = 0.1と宣言するfmt.Printlnに定数FeeRateを渡す
ヒント
編集 ゆめさく編集部