Go言語入門:言語仕様 -Vol.112-

スポンサーリンク
Go言語入門:言語仕様 -Vol.112- 用語解説
Go言語入門:言語仕様 -Vol.112-
この記事は約3分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

本日は、Go言語の言語仕様について解説しています。

スポンサーリンク

背景

Go言語を学び始めて、公式の「The Go Programming Language Specification(言語仕様書)」を開いてみたものの、「英語で書かれていて読むのが大変…」「専門用語ばかりで何を言っているのかわからない…」と感じたことはありませんか? 実は、多くのGo初心者が同じ壁にぶつかっています。

言語仕様書は、Go言語の「正式な取扱説明書」のような存在です。プログラミング言語がどのように動くのか、どんなルールで書くべきなのかが詳しく書かれていますが、その分、初めて読む人には難しく感じられるのも事実です。

そこでこの記事では、言語仕様書の導入部分を丁寧な日本語訳とともに、初心者の方でも理解しやすい補足説明を加えてお届けします。「強く型付けされている」「ガベージコレクション」「並行プログラミング」といった専門用語も、具体例を交えながらわかりやすく解説していきます。

言語仕様書は難しそうに見えますが、一つひとつの概念を丁寧に読み解いていけば、必ず理解できます。一緒に、Go言語の基礎をしっかり学んでいきましょう!

for文(For statements)

for 文はブロックの繰り返し実行を指定する。3つの形式がある。反復は単一の条件、for 節、または range 節によって制御できる。

ForStmt   = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .

解説

Go のループは for だけ

Go には whiledo-while がありません。すべてのループは for で書きます。その代わり、for が3つの異なる形式を持つことで、あらゆるループパターンをカバーしています。

3つの形式の概要

1. 条件のみ(他の言語の while に相当)

for x > 0 {
    x--
}

2. for 節(C言語スタイルの3部構成)

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

3. range 節(コレクションの要素を順に処理)

for i, v := range []int{10, 20, 30} {
    fmt.Println(i, v)
}

さらに、すべてを省略すると無限ループになります。

for {
    // 永遠に繰り返す(break で抜ける)
}

なぜ for だけなのか

Go の設計思想は「同じことを書く方法は1つだけ」です。whiledo-whilefor という3つのキーワードを覚える代わりに、for の3つの形式を覚えれば済みます。

// 他の言語の while(condition) に相当
for condition {
}

// 他の言語の while(true) に相当
for {
}

// 他の言語の for(init; cond; post) に相当
for init; cond; post {
}

// 他の言語の for-each / for-in に相当
for key, value := range collection {
}

それぞれの形式の詳細は、後続の節で順番に説明されます。

おわりに 

本日は、Go言語の言語仕様について解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました