0Pricing
Go Academy · レッスン

定数と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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Goで変数を宣言する
  2. Goの組み込み型
  3. 定数とiota
  4. Goの型変換
← Go Academyに戻る