Edited at

ぶっちゃけgo get の後に何が起きているかわからない人! 

More than 1 year has passed since last update.


恥ずかしさはエンジニアの生きるエンジン

Go初心者の諸君!

GOPATH通し終えた君たちに質問がある

go get の後何が起きているか知ってるかい。

正直に言おう、俺は1ヶ月前まで思考停止していてただひたすらにgo get を使っていた。

その時の思考回路がこれだ!

①goでコードをかく

②エラー cannot find package "github.com/hoge"

③go get github.com/hoge する

④エラー解消

⑤よっしゃ go get 神!!

①に戻る

独学あるあるのとりあえずできるから仕組みはいいや的な発想ですね

こういう思考は理解を後回しにする習慣を形成して最終的にまとめて勉強する必要があるので、

なるべくわからないものが溜まる前に消化しておきたいものです。

それでは解説していきます。

まず、GOPATH通しましたよね

bash_profile or zshrc

つまり自分のシェルの設定ファイルにこんな記述をしましたよねって話

export  GOPATH =$HOME/go

export PATH=$PATH:$GOPATH/bin

この作業で何やってるのかわからない人は下の記事を読んでまたこの記事に戻ってください!

環境変数を知らなくて呆れた顔されたので1日で勉強した内容をまとめる↓

https://qiita.com/yu19991013/items/852e1c0f299ddd9d3efd

これで何ができるようになったかっていうと実は2つのことができるようになっています。

①go getが叩かれるとGoで書かれたコマンドラインツールの実行ファイルをGOPATH/bin配下に自動的に置いてくれます。

②①と同じタイミングでGOPATH/srcにパッケージのソースコードが置かれます。ちなみに、go getでは取得したパッケージの依存パッケージ(importの中に書いてあるパッケージ)も一緒にダウンロードしてくれます。

以上!自分がつまずいた経験を元に記事を書いてみました。