Go言語の構文ルールまとめ!インデント・セミコロンなど最初に知っておくポイント
生徒
「Go言語を始めたいのですが、まず最初に覚えるべきルールってありますか?」
先生
「はい、Go言語には他の言語と少し違った独特な書き方のルールがあります。インデントの扱いやセミコロンの使い方など、基本的な構文ルールをしっかり押さえておきましょう。」
生徒
「具体的にはどんなルールなんですか?初心者でも理解できますか?」
先生
「もちろんです!それでは、Go言語の構文ルールをやさしく解説していきましょう。」
1. Go言語ではインデントが重要!でも自由?
Go言語では、見た目の整ったコードを書くためにインデント(字下げ)を使います。インデントとは、コードの先頭にスペースやタブで空白を入れて、構造をわかりやすくするものです。
Pythonのように「インデントの深さが意味を持つ」わけではありませんが、Goではコードの整形ルールが厳格です。開発者全員が同じ書き方をするために、標準でgofmtというフォーマッタを使います。
これを使うと、自動的にインデントやスペースの位置が整います。つまり、自分で整えなくてもgofmtが正しい形にしてくれるので安心です。
2. セミコロン(;)は書かなくてOK?
多くのプログラミング言語では、文の終わりにセミコロン(;)を付ける必要がありますが、Go言語では基本的にセミコロンを自分で書く必要はありません。
Go言語のコンパイラが、行の終わりで自動的にセミコロンを挿入してくれるため、文の最後に改行を書くだけでOKです。
ただし、1行で複数の文を書くときなど、特別な場合には自分でセミコロンを書くこともありますが、初心者は基本的にセミコロンを書かなくて大丈夫です。
3. 中かっこ({})は行末に書くのがルール
Go言語では、コードブロック(処理のかたまり)を波かっこ {} で囲むというルールがあります。これは他の言語でもよく見られるルールです。
ただし、Goでは開き中かっこ({)を必ず同じ行の文の最後に書く必要があります。改行してしまうとエラーになります。
例えば、次のような書き方は正しいです。
if x > 0 {
fmt.Println("正の数です")
}
でも、次のように書くとエラーになります。
if x > 0
{
fmt.Println("エラーになります")
}
このように、{は前の行と同じ行に書くというのがGoの基本ルールです。
4. Goではタブでインデント!スペースよりタブが推奨
Go言語ではインデントにタブを使うのが正式なルールです。他の言語ではスペースを使うこともありますが、Goではタブが基本です。
これもgofmtによって自動的に変換されるため、自分で気にしすぎる必要はありませんが、エディタの設定を「タブにする」ようにしておくとスムーズです。
5. コメントの書き方:コードの説明を書こう
コメントとは、プログラムの動作に関係なく、開発者のためのメモのようなものです。Goでは、次のようにコメントを書きます。
// これは1行コメントです
/*
これは複数行コメントです。
複数行にわたる説明を書けます。
*/
//(スラッシュ2つ)を使うと、その行の右側がコメントになります。コードの説明やメモを残すのに便利です。
6. ファイルの先頭には「package」宣言を忘れずに
Go言語のソースコードを書くときは、ファイルの最初に必ずpackageという宣言を書く必要があります。
このpackageとは、ファイルがどのグループ(パッケージ)に属しているかを示すものです。基本的には、次のように書きます。
package main
このmainというパッケージは、実行できるGoプログラムの入口であることを意味します。
7. 必須の「main関数」:ここから実行される!
Go言語の実行プログラムでは、必ずmainという名前の関数を定義する必要があります。この関数の中に、実際の処理を書くことになります。
書き方は次のようになります。
func main() {
fmt.Println("こんにちは、Go言語!")
}
このmain関数が、Goプログラムのスタート地点になります。
8. Goファイルの拡張子は「.go」
Go言語でコードを書くときは、ファイルの名前の最後に「.go」という拡張子を付ける必要があります。
たとえば、main.goやhello.goといった名前になります。.txt や .cpp などでは実行できません。
まとめ
今回はGo言語の構文ルールを初心者にも分かりやすく整理しました。Go言語はシンプルさと効率を重視したプログラミング言語であり、インデント、セミコロン、中かっこの位置、タブの使用、コメントの書き方、package宣言、main関数、拡張子.goといった基本ルールを理解することが第一歩となります。特にPythonやC言語、Javaなど他の言語を学んだ経験がある人にとっては、似ているようで違う部分が多く、最初に知っておくことでエラーを減らし、効率的に学習できます。
Go言語では、インデントの深さが文法的な意味を持つわけではありませんが、コードを読みやすくするために整ったインデントをつけることが推奨されています。標準ツールのgofmtを使うことで、自動的にインデントやスペースが統一されるため、開発者同士でのコードの見やすさも維持できます。インデントはタブを基本とし、スペースではなくタブを設定しておくと安心です。
セミコロンに関しては、多くのプログラミング言語では必須ですが、Go言語では基本的に不要です。改行するだけでコンパイラが自動的にセミコロンを補完してくれます。これによりシンプルなコードが書ける一方で、1行に複数の文を書く場合のみセミコロンを手動で入れる必要があることを理解しておきましょう。
さらにGo言語の特徴として、中かっこの位置に厳しいルールがあります。開き中かっこは必ずif文やfor文などの同じ行に書かなければならず、改行して書くとエラーになります。C言語やJavaでよく使われる「改行してから中かっこを書く」スタイルが使えない点は初心者がつまずきやすいポイントです。
コメントの書き方も理解しておくと便利です。1行コメントには「//」、複数行コメントには「/* */」を使います。コメントはプログラムの実行には影響しませんが、他の開発者や未来の自分にコードの意図を伝える大切な手段です。
また、Goのソースコードは必ずpackage宣言から始める必要があります。特に「package main」は実行可能なプログラムを表し、そこからmain関数が呼び出される仕組みです。main関数はGoプログラムの入口であり、最初に実行される場所なので必須です。
最後に、ファイル名は必ず拡張子「.go」にする必要があります。拡張子が異なるとGoコンパイラが認識できないため、実行できません。これらを踏まえて、初心者が最初に理解しておくべきGo言語の構文ルールを実際のコード例とあわせて整理してみましょう。
サンプルプログラム:基本的なGo言語の書き方
以下はGo言語の基本的な構造を示すサンプルプログラムです。
package main
import "fmt"
func main() {
// これは1行コメントです
fmt.Println("こんにちは、Go言語!")
x := 5
if x > 0 {
fmt.Println("正の数です")
}
}
このプログラムでは、package mainの宣言、main関数の定義、コメントの書き方、中かっこの位置、そしてセミコロンを省略できる仕組みなど、Go言語の基本ルールがすべて含まれています。初心者はまずこの形を覚え、コードを書くたびに確認する習慣をつけると理解が深まります。
生徒
「先生、Go言語の基本ルールを一通り学んだのですが、まとめると何が一番大事ですか?」
先生
「一番大事なのは、Go言語の書き方に一貫性があることです。インデントはタブ、セミコロンは基本不要、中かっこは同じ行、package mainとmain関数を忘れないこと、そして拡張子は.goにすることです。」
生徒
「なるほど!PythonやC言語と似ている部分もありますが、Go言語ならではのルールを覚えることが大切なんですね。」
先生
「その通りです。最初は慣れないかもしれませんが、gofmtを活用すればインデントやフォーマットを自動で整えてくれるので安心です。これから実際にコードを書きながら体で覚えていきましょう。」
生徒
「はい!Go言語のインデントや中かっこのルールを守って、実際にプログラムを書いて練習してみます!」