LoginSignup
2
2

More than 5 years have passed since last update.

golangの便利なサブコマンドや関連コマンドまとめ

Last updated at Posted at 2016-10-15

golang

便利じゃない(ソースに手を加える必要があるとか)や、自分が理解できなかったのはありません。

サブコマンド

go build [goファイル]

実行ファイルを作成する
環境変数GOOSやGOARCHの設定をしてやるとクロスコンパイルができる。
https://golang.org/doc/install/source#environment
(mainパッケージが複数ある場合は複数のファイル名を指定)
例:go build main.go board.go xy.go
実行ファイル名は一番左にあるファイル(この場合はmainやmain.exe)になる

go run [goファイル]

実行ファイルを作成せずに実行する
(mainパッケージが複数ある場合は複数のファイル名を指定)
例:go run main.go board.go xy.go

go fmt [goファイル]

リファクタリング。ソースの整形をしてくれる。
具体的にはインデントの調整や空行の調整など
実行結果に影響は出ないので安心して使おう
例:go fmt main.go
例:go fmt
ファイル名を指定しないとカレントディレクトリにある全てのgoファイルを整形し、対象のファイル名を出力してくれる

go doc [パッケージやその関数や型]

パッケージやその関数、型、型のメソッドを参照できる。
しかし、関数や型やメソッドは、先頭が大文字(つまりパッケージ外から参照できるもの)でないと表示されない。
また、パッケージ名として指定できるのは標準パッケージと環境変数GOPATHが通っているパッケージに限る。
関数名等は表示順は自動的にソートされるので、ソースコードの書き方に左右されない。
自作パッケージを参照したいときは関数等の上にコメントアウトで説明を書いておくと、表示されるのでわかりやすい。
例:go doc net
netパッケージの関数や型を一覧表示する
例:go doc net.Dial
netパッケージのDial関数の詳細と、その上にかかれているコメントを表示する
例:go doc net.Dialer
netパッケージのDialer型とそのメソッドを一覧表示する
例:go doc net.Dialer.Dial
netパッケージのDialer型のDialメソッドを表示する

go get [githubなどのパス]

パッケージをリモートリポジトリからローカルにコピーするコマンド。
環境変数GOPATHが通っている一番はじめのパスにコピー(つまりダウンロード)される
実行ファイルがGOPATH/binにダウンロードされることもあるけど、どうやってやるのかは謎(教えて欲しい)
環境変数GOPATH、gitコマンドが必須
例:go get golang.org/x/mobile
公式はgolang.org、その他の一般はgithub.comが多い気がする。
上の例では、
import "golang.org/x/mobile"
とすることでパッケージを使用できる。

go env

環境変数
今まで挙げたGOROOT,GOPATH,GOOS,GOARCH等だけでなく、その他のgoが参照する環境変数とその中身を一覧できる

その他関連コマンド

gofmt [フラグ] [goファイル]

go fmtよりも自由度が高い、と言うかgo fmtがgofmtを呼び出している。

フラグの一部

-s シンプルにする
-d 差分を表示(diffコマンド必須)
-l 更新される(つまり未整形の)ファイルを一覧する
-w ファイルに上書きする

他にもベンチマークしたり(test)、goファイルが変形したアセンブリを見たり(tool)と様々なコマンドがあります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2