概要
以前のブログポストではGolangをインストールして、Hello, World!
が画面に出力されるプログラムをGolangを使って作成してみました。
今回のブログポストではもう一度Hello, World!
が出力されるプログラムを生成して、当該プログラムをもうちょっと詳しく説明してみます。今回のブログポストで紹介するソースコードは下記のリンクで確認できます。
プログラム作成
Golangを使ってHello world
を出力するプログラムを作成してみましょう。Hello worldを画面に出力するプログラムを作るため、main.go
ファイルを生成して次のように修正します。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
プログラムの作成が終わったら、次のコマンドを実行してプログラムを実行します。
go run main.go
そしたら、次のようにHello, World!
が画面によく出力されることが確認できます。
Hello, World!
コード分析
次は、私たちがGolangで作成したHello world
を出力するソースコードを詳しくみてみましょう。
package main
package
はGolangでソースコードを結ぶ一つの単位です。Golangでプログラムを作成する時、全てのプログラムはpackage
で始めます。このpackage
は現在作成しているソースコードがどんなパッケージに所属されるか指定する役割をします。
パッケージ名はなんでも良いですが、パッケージ名がmain
になってるソースコードが必ず必要です。package main
はプログラムのスタートポイントを持ってることを意味して、Golangはこのパッケージを基準としてプログラムを実行します。
Golangのプログラムはmain
パッケージ1つと他の色んなパッケージで構成されます。
import "fmt"
fmt
と言うパッケージをロード(import)することを意味します。パッケージはソースコードの集まりです。つまり、パッケージは色んな機能を持ってる1つの単位です。私たちはfmt
パッケージが提供するPrintln
と言う機能を使ってHello, World!
を出力する予定です。このようにパッケージが持ってる特定な機能を使いたい時は、当該パッケージをロードする必要があります。
func main() {
...
}
Golangでは関数を提起する時、func
と言うキーワードを使います。関数名はなんでも使えますが、関数名でmain
を使って、Golangにプログラムのスタートポイントを教えてあげました。
つまり、Golangでプログラムを作成する時、名前がmain
であるpackage
が存在して、当該パッケージには名前がmain
である関数が必ず存在している必要があります。そうしないと、Golangはプログラムのスタートポイントを探せないのでプログラムを実行することができません。
fmt.Println("Hello, World!")
私たちがインポートしたfmt
パッケージが持っているPrintln
と言う関数(機能)をコールすることを意味します。
ビルド
このようにGolangで作成したプログラムはビルドして実行ファイルを作ることができますえ。実行ファイルを作るためにはModule
を生成する必要があります。次のコマンドを使ってModule
を生成します。
go mod init hello_world
モジュールの名前(hello_world
)はなんでもいいですが、ユニークである必要があります。普通はプログラムが入ってるフォルダ名を使います。
このようにモジュールを生成するとフォルダ中にgo.mod
ファイルが生成されたことが確認できます。
.
├── go.mod
└── main.go
次は下記のコマンドを実行してGolangで作成したプログラムをビルドします。
go build
ビルドが完了されると次のようにhello_world
ファイルが新く生成されたことが確認できます。(各OSに合わせて実行ファイルが生成されます。macOSではない方はファイル名が違います。)
.
├── go.mod
├── hello_world
└── main.go
次は下記のコマンドを実行して私たちが作成したプログラムを実行してみます。
./hello_world
そしたら下記のようにプログラムが上手く実行されることが確認できます。
Hello, World!
完了
これでGolangで作成したHello world
プログラムを詳しくみてみました。また、Golangで作成したプログラムをビルドして実行ファイルを作って、実行ファイルを使ってプログラムを実行してみました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。