1 Goプログラムの基本構造
Goプログラムは、パッケージの宣言から始まり、必要なパッケージのインポート、パッケージレベルの変数、定数、型の宣言、そして最後にパッケージ内に含まれる関数で構成されます。"Hello World"を例に取ると、以下はGoプログラムの典型的な基本構造です:
package main // mainパッケージを宣言し、独立して実行可能なプログラムを示す
import "fmt" // 入出力関数を含むfmtパッケージをインポート
// プログラムのエントリーポイントであるmain関数
func main() {
fmt.Println("Hello, World!") // ターミナルにHello, Worldを出力
}
パッケージの概念と目的
Go言語では、パッケージは複数のGoソースファイルのコレクションであり、高レベルのコード再利用メカニズムとして機能します。Goの各ファイルはパッケージに属し、パッケージ名はそれが存在するディレクトリ名と同じであるべきです。
ソースコードファイルの命名規則
Goのソースファイルの命名は一般的に小文字を使用し、hello_world.go
などのようにスペースや特殊文字を含めません。ソースファイル名はパッケージ名と一致する必要はありませんが、同じパッケージ内のすべてのファイルのパッケージ宣言文は一貫したパッケージ名を持つべきです。
プログラム内でのコメントの使い方
Go言語では、コメントは//
で始まる一行コメントと、/*
で始まり*/
で終わる複数行コメントの2つの形式があります。コメントの内容はコンパイラによって無視されます。
// これは一行コメントです
/*
複数の行にわたる
複数行コメントです
*/
2 main関数とプログラムのエントリーポイント
Goプログラムでは、main
関数が特別に設計され、プログラムのエントリーポイントとして機能します。Goのランタイムは、mainパッケージ内のmain
関数を自動的に呼び出してプログラムの実行を開始します。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
main
関数は引数を受け取らず、戻り値を持ちません。main
関数の実行後、プログラムは自動的に終了します。プログラムが終了する際にステータスコードを返す必要がある場合は、os.Exit
関数を使用する必要があります。
3 プログラムのビルドと実行
go build
コマンドの使用
go build
コマンドを実行すると、ソースコードファイルがコンパイルされ、実行可能ファイルが生成されます。ターミナルで、ソースファイルが存在するディレクトリに移動し、次のコマンドを入力します:
go build hello_world.go
正常に実行されると、現在のディレクトリにhello_world
(Windowsの場合はhello_world.exe
)という名前の実行可能ファイルが作成されます。
go run
コマンドの使用
go run
コマンドは、Goプログラムをコンパイルして実行するため、素早いテストや開発に非常に便利です。Hello Worldプログラムを実行するには、次のコマンドを入力します:
go run hello_world.go
このコマンドを実行すると、ターミナルに即座に"Hello, World!"という出力が表示されるはずです。
4. プログラムの出力
Goプログラムでは、fmt
パッケージが提供するPrintln
関数を使用して情報をターミナルに出力することができます。以下は、"Hello, World!"をターミナルに出力するコード例です:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!") // ターミナルに出力
}
プログラムを実行すると、出力はコマンドラインターミナルで直接確認できます。また、より複雑な出力要件はlog
パッケージを使用したり、標準出力ストリームos.Stdout
を直接操作することで実現できます。
import "os"
os.Stdout.WriteString("Hello, World!\n") // 標準出力ストリームを直接操作
import "log"
log.Println("Hello, World!") // 日付と時刻情報を含む出力にはlogパッケージを使用
これらの基本的な出力方法は、ユーザーとのやり取りやプログラムのデバッグにおいて重要な手段であり、よく使用されます。