定数とiota
定数の定義と、列挙におけるiotaの利用
「定数とiota」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
定数とは何ですか
定数は、実行時に変化しない値を保持します。
constで宣言します- コンパイル時に計算可能でなければなりません
- 型付きにも型なしにもできます
- 文字列、ブール値、数値、runeのリテラルを使用できます
型付き定数と型なし定数
型なし定数は、より高い精度を持ち、柔軟に扱えます。
const Pi = 3.14159— 型なしの浮動小数点数で、文脈に応じて適応しますconst Pi float64 = 3.14159— 型付きのfloat64- 型なしの整数定数は、任意の整数型で使用できます
定数式
定数は、コンパイル時にほかの定数から計算できます。
const (
KB = 1024
MB = 1024 * KB
GB = 1024 * MB
)iota:自動インクリメント値
iotaは組み込みカウンターです。各constブロックで0にリセットされ、そのブロック内の定数ごとに1ずつ増加します。
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
)式と組み合わせたiota
iotaを式と組み合わせると、柔軟な列挙を実現できます。
const (
_ = iota // skip 0
KB = 1 << (10 * iota) // 1024
MB // 1048576
GB // 1073741824
)文字列定数
文字列定数は、コンパイル時に決まる不変の文字列値です。
const (
AppName = "GoApp"
AppVersion = "1.0.0"
Greeting = "Hello, " + AppName
)ブール定数
trueとfalseは、Goで事前宣言された型なしのブール定数です。機能フラグ用に、独自のbool型定数を定義することもできます。
const (
EnableMetrics = true
DebugMode = false
)定数と変数の違い
主な違いは次のとおりです。
- 定数は不変です — 宣言後に代入するとコンパイルエラーになります
- 定数では、関数呼び出しなどの非定数式を使用できません
- 定数はより効率的です — コンパイラーによってインライン化される場合があります
- マジックナンバーには定数を使うと、コードの可読性が向上します
iotaを使った列挙型
定義済み型とiotaを組み合わせると、型安全な列挙型を作成できます。
type Direction int
const (
North Direction = iota
East
South
West
)列挙型を読みやすくするStringer
列挙型にStringerインターフェースを実装すると、整数値そのものではなく、人が読める名前を出力できます。stringerツールを使えば、このコードを自動生成できます。
iotaのビットマスクパターン
iotaとビットシフトを組み合わせると、フラグセットを作成できます。
type Permission uint
const (
Read Permission = 1 << iota // 1
Write // 2
Execute // 4
)
func main() {
access := Read | Write // 3
_ = access
}クイックチェック
新しいconstブロックでは、iotaはどの値から始まりますか。
復習:定数とiota
これで、Goの定数について理解できました。
constは、コンパイル時に決まる不変の値を宣言します- 型なし定数は柔軟で、高い精度を持ちます
iotaはconstブロック内で0から始まり、自動的に増加します- iotaを式と組み合わせると、ファイルサイズ、ビットフラグ、列挙型を表現できます
- 定義済み型とiotaを組み合わせて、型安全な列挙型を作成できます
次は、明示的な型変換と型エイリアスについて学びます。
よくある質問
「定数とiota」レッスンは無料ですか?
はい。「定数とiota」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「定数とiota」で何を学びますか?
定数の定義と、列挙におけるiotaの利用 ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「定数とiota」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Goで変数を宣言する
- Goの組み込み型
- 定数とiota
- Goの型変換