はじめに
ブロックチェーンの勉強を行っていると、結構Go言語の話が出たり求人とかもGo言語が求められているので、今後必要になりそうだなーと思ったので早速Udemyで講座を購入し、勉強をはじめました!!
が、収録されている時からGoのバージョンが上がっていてgo get
が使えなかったりして地味に環境構築に時間が取られたので、他の方にも参考になればと思い投稿することにしました。
環境
OS : Mac
エディタ : VScode
Go : 1.17.4
注※本記事ではVscodeのインストール方法は記載しておりません。
Goのインストール
Downloadsのサイトからパッケージをダウンロードして、インストールしました。
バージョン確認してGoが無事にインストールできたことを確認!
go version
go version go1.17.4 darwin/amd64
Homebrewのインストール
(私は既にインストール済みだったので、実際にはやっていません)
Homebrewのサイトから記載されているインストール用のコマンドをコピーして、ターミナルに貼り付けて実行することでインストールできます。
下記スクリプトをターミナルで実行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
実行時にパスワード聞かれたりしますが、ログインする時のパスワードを入れればよかったはずです。
バージョン確認してHomebrewが無事にインストールできたことを確認!
brew -v
Homebrew 3.3.6-72-g5096d6e
...
外部パッケージを取得
プログラムを書くときには外部パッケージを利用していくことになります。
そのためには、Gitが必要らしいので、上記でインストールしたHomebrewを使用してGitをインストールします。
brew install git
バージョン確認してGoが無事にインストールできたことを確認!
git --version
git version 2.24.3 (Apple Git-128)
godocを取得
外部パッケージが取得できることの確認としてgodocを試しに取得します。
godocとは?
Go言語は、godoc というコマンドがあります。
このコマンドを使用することでgolang.orgのパッケージのドキュメントをオフラインで閲覧することが出来ます。
講座ではgo get XXX
で外部パッケージ取得していましたが、私がインストールしたGoではgo get
が使用できなくなっており、なんだこれってなりました。。
調べてみると、go1.17からgo get
は非推奨、代わりにgo install
を使用してねーとのことでした。
上記の理由から以下のコマンドでgodocを取得しました。
go install golang.org/x/tools/cmd/godoc@latest
以下のコマンドでfmtのドキュメントを確認して、godocが無事に取得できたことを確認!
したいのですが、ここでも講座ではgodoc fmt
でgodocを参照できるとのことでしたが、
仕様が変更されたみたいでgodoc fmt
のコマンドを実行しても、以下のメッセージが表示され、godocが読み込めませんでした。
godoc fmt
-bash: godoc: command not found
調べてみると、godocのCLIモードはサポート終了されていることが原因らしく、
その代わりにgo doc
を使用してねーとのことみたいです。
なのでgo doc
を使用すると長文が表示されており、どうやら無事にgodocが取得できているみたいです。
go doc fmt
package fmt // import "fmt"
Package fmt implements formatted I/O with functions analogous to C's printf
and scanf. The format 'verbs' are derived from C's but are simpler.
...
Vscodeをインストール
Vscodeのインストールについては、私は既にインストール済みであること、
インストール方法は、たくさん記事があるので本記事では割愛させていただきます。
VscodeでGoの環境を設定
まずはMarketplaceで拡張機能をインストールします。
「Go」と検索すれば一番上に表示されると思います。
拡張機能「Go」がインストールできたら、開発に必要なライブラリ(デバッグ用のライブラリ等)は別途でインストールする必要があるらしいので、実施して行きます。
・F1
で、コマンドパレットを呼び出し、「>go Install」で検索
・「Go: Install/Update Tools」が表示されるのでクリック
・必要なものを選択し、OKを押下し、インストール完了
とりあえず私は全部にチェックを入れてインストールしました
ここまで終われば一旦、設定は完了です。
Goでhello world
HelloWorld 用のファイルを作成。
どこでも良いと思いますが、私は以下に作成しました。
$GOPATH/src/hello_world.go
GOPATHの場所はgo env
で確認できます。
hello_world.goの内容はこんな感じ
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
F5
でデバッグ実行を行うと、以下のエラーが起きて実行できませんでした。
なにかする度につまづいている気がします。
go: go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1)
go.modがないんだなーというのはわかりました。
調べた結果modファイルを作ってあげればいいみたいです。
$\tiny{なんで必要とか細かいところまでは今後調べます!!}$
Vscodeでターミナルを開いてgo mod init [プロジェクト名]
のコマンドを実行して作成します。
src $ go mod init hello_world
go: creating new go.mod: module hello_world
go: to add module requirements and sums:
go mod tidy
go.modというファイルができました。
中身はこんな感じですね。依存関係が追加されていくとかどうとか・・
module hello_world
go 1.17
go.modファイルが無事作成されたことが確認できたので、再度
F5
でデバッグ実行を行うと,無事にHello world!が出力されました!
参考
VSCode を使って Go のデバッガーが動くまでの設定をした
VSCodeでGoの開発ができるようにする
VSCodeでGo言語の開発環境を構築する
おわりに
Udemyの講座と違う部分もあり、少し時間を使いましたが無事にVsCodeで実行することが出来ました。
長くなってしまいましたが、誰かのお役に立てれば幸いです。
細かい部分の調査ができていなかったり、記載ミス等ありましたら優しく教えて欲しいです