Golangのプロジェクト作成とデバッグ実行
この記事ではGo言語で開発をするに当たってのプロジェクト作成とデバッグ実行の方法を紹介します。
まだGo言語の環境構築が完了していない場合はこちらの記事を参考にしてください。
プロジェクトディレクトリの作成
まずはGoのソースコードを格納するためのディレクトリを作成します。
Macの場合は、ターミナルでmkdirコマンドを使用したり、Finderで新規フォルダの作成をしても構いません。
Windowsの場合は、コマンドプロンプトでmkdirを使用したり、エクスプローラでフォルダを作成することもできます。
ターミナル、もしくはコマンドプロンプトでディレクトリを作る際は、適宜ディレクトリを作成するパスまでチェンジディレクトリしてください。
そうしたら以下のコマンドを入力・実行してください。sample-go
というディレクトリが作成されます。
このディレクトリをVSCodeで開いておきましょう。
mkdir sample-go
モジュールの初期化
Goではプロジェクトを作成したときの最初に「モジュールの初期化」が必要です。
まずはVSCodeのターミナルで以下のコマンドを入力・実行してみましょう。
go mod init 任意のモジュール名
この「モジュールの初期化」をすることでgo.mod
ファイルが作成されます。go.mod
ファイルはモジュールの依存関係を管理するためのファイルです。
Go言語ではさまざまなモジュールをインポートして、それらの機能を組み合わせて開発を行います。これは他の言語でも同様です。
そしてインポートしたモジュールやそのバージョンを管理するのがこのgo.mod
ファイルということになります。
上のVSCodeの画像では、go mod init
コマンドを実行したときの任意のモジュール名とGoのバージョンしか書かれていません。
これはまだ他のモジュールをインポートしていないためです。開発をしていくに当たってモジュールをインポートするときに確認してみましょう!
mainパッケージの作成
Go言語ではプログラムを作っていく際に必ずmainパッケージというものを用意する必要があります。
Go言語のプログラムを動かすときに、このmainパッケージないに作成されたmain関数が最初に実行されるように定義されています。これをエントリーポイントと言ったりもします。
main.goファイルの作成
それでは早速mainパッケージを作成していきます。
まずプロジェクトのルートディレクトリにmain.go
というファイルを作成します。go.mod
と同じディレクトリ階層にファイルを作成しましょう。
パッケージ宣言
main.goファイルを作成しただけではまだmainパッケージが作られていることにはなりません。
main.goファイルの先頭にパッケージ宣言をしましょう。
以下の記述をしてください。
package main
main関数の作成
プログラムを動かした時のエントリーポイントとなるmain関数を作成しましょう!
ここではGo言語の標準パッケージであるfmtパッケージをインポートします。
fmtパッケージはコンソールに文字を出力したり、テキストのフォーマットをしたりできるパッケージです。
標準パッケージということもあり、Goをインストールしたら、プログラム内でインポートすれば使えるようになります。
そしてfunc main() {}
として関数宣言をしています。
このfunc main() {}
の中に書かれた処理が、main関数で行われる処理になります。
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
プログラムの実行
main関数を書くことができたので、実際にプログラムを実行して結果を確かめてみましょう!
VSCodeのターミナルで以下のコマンドを入力し、実行してみましょう。
go run .
画像と同じ結果となりましたでしょうか?go run .
を実行した後に、Hello World!
という文字が出力されていますね!
そうです。main関数内に記述したfmt.Println()
というメソッドは、指定した文字列や値をターミナル上に出力する機能があります。
デバッグをちょっと便利に
先ほどはプログラムを実行するためにgo run
コマンドを使用しました。
しかし、プログラムを修正するたびにこのコマンドを打つのは少々面倒くさいですよね。
そこで、VSCode上でもっと簡単にプログラムを実行できる方法を書いていきます。
デバッグビューの表示
まずはVSCodeの左サイドメニューからデバッグビューを開きます。
▶︎マークに虫のアイコンがついたボタンです。
launch.jsonの作成
次に、表示されたデバッグメニュー上にある「launch.jsonファイルを作成します」をクリックしましょう。
するとVSCode上部からメニューが表示されます。「Go: Launch Package」を選択しましょう。
選択すると、Goのプロジェクトに.vscodeというフォルダが作られ、さらにその中にlaunc.jsonが作成されます。
このファイルを編集するので、開きましょう。
launch.jsonのカスタマイズ
launch.jsonファイルを開いたら、↓のように修正してください。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}",
"env": {},
"args": [],
"output": "__debug_bin"
}
]
}
重要となるのは、以下の2つです。
"program": "${workspaceFolder}"
・・・デバッグ対象のディレクトリのパスを指定しています。ここの値がfileDirname
だと、開いているファイルのデバッグをしてしまうので修正します。"output": "__debug_bin"
・・・Goではデバッグするときに一時的に実行ファイルが作成されます。その実行ファイルの名前を指定しています。
デフォルトだと、毎回デバッグする度にランダムな文字列が入ります。
Goデバッグ時にOSの権限により、実行ファイルにアクセスを許可するかという旨のダイアログが表示されます。デバッグごとに違う名前だと、毎回聞かれて鬱陶しいので名前が変わらないように指定しています。
デバッグ実行!
launch.jsonの設定ができたので、早速デバッグ実行してみましょう!
以下のどちらかの方法でデバッグしてください。
デバッグ実行方法
- VSCode上でF5キーを押す。
- デバッグビューでデバッグ実行アイコンを押す。
デバッグ実行結果の確認
デバッグを開始したら、VSCodeのデバッグコンソールを見てましょう!
ちゃんと「Hello World!」の文字が出力されていればOKです。
おわりに
今回はGo言語のプロジェクトを作成する方法と、デバッグ実行する方法を紹介しました!
プロジェクトの作成やデバック実行は開発する上で必ず行う作業なので、覚えて効率化していけるといいですね!