環境
Go:1.14.2
OS:Mac
git:2.20.1 (Apple Git-117)
エディタ:VisualStudioCode
Go言語のIDEとしては、他にGolandが有名だが、
一旦はフィジ確認程度で、VisualStudioCodeで不満なく使用できそうなので
VisualStudioCodeを選択。
Go本体のインストール
下記からApple MacOS向けの最新版(1.14.2)のモジュールをインストール。
https://golang.org/dl/
ダウンロードが完了したらインストーラーが起動するので、
画面の指示に従いインストールする。
インストール完了後、ターミナルを開きgo -version
と入力し
下記のように表示されたらインストール成功。
$ go version
go version go1.14.2 darwin/amd64
パスの設定
go env
コマンドでgoの環境変数の設定確認ができる。
今回、デフォルト設定でインストールしたところ、下記の通り設定されていた。
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/username/Library/Caches/go-build"
GOENV="/Users/username/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/username/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
・・・
下記のうち、特に注意が必要な変数は2つ
- GOROOT
Goモジュールのルートディレクトリ
インストールしたGoのパスが登録される。
複数バージョンを使う以外はデフォルトのまま使用して良い。
デフォルトのインストール設定では配下にgo
とgofmt
が格納されていた。
$ls
go gofmt
- GOPATH
Goのワーキングディレクトリを指す。
go get
というパッケージをダウンロードするコマンドを使用する際に必要となる。
ダウンロードしたパッケージはGOPATHで指定したディレクトリに保存され、
goでimportする際にはGOPATHの中身を参照しに行く。
デフォルトのインストールでパスが通っていたが、該当のフォルダは作成されていなかった。
gitのインストール
(まだgitを導入していない場合)
ターミナルでgit
と入力すると、install commandline developer toolsの
ポップアップが表示されるので、インストールする。
インストール終了後、ターミナル上でgit --version
と入力し、
バージョン情報が出力されたらインストール完了。
$ git --version
git version 2.20.1 (Apple Git-117)
VisualStudioCodeのインストール
上記リンクからソフトをダウンロードする。(Stable Build版)
https://code.visualstudio.com/
ダウンロードしたzipを解凍し、解凍後に
ダウンロードディレクトリからアプリケーションのディレクトリに移動させる。
(Launchpadからの起動が可能になる。)
VisualStudioCodeの設定
-
日本語化
なんにでも使える
https://qiita.com/ntkgcj/items/e77331932c7983dea830 -
パッケージのインストール、更新
※上記gitのインストール、golangの拡張機能のインストール後実施すること
VSCode上で⌘command+Shift+P
でコマンドパレットを開き、
>go:install/update tools
と入力する。
必要なパッケージを選択後、インストールする。(基本的にすべて選択で良い)
インストールが正常に終了すると、下記のように表示される。
何かしらに失敗していたらgitコマンドが有効になっているか確かめる。
gocode
gopkgs
go-outline
go-symbols
guru
gorename
gotests
gomodifytags
impl
fillstruct
goplay
godoctor
dlv
gocode-gomod
godef
goreturns
golint
Installing github.com/mdempsky/gocode SUCCEEDED
Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs SUCCEEDED
Installing github.com/ramya-rao-a/go-outline SUCCEEDED
Installing github.com/acroca/go-symbols SUCCEEDED
Installing golang.org/x/tools/cmd/guru SUCCEEDED
Installing golang.org/x/tools/cmd/gorename SUCCEEDED
Installing github.com/cweill/gotests/... SUCCEEDED
Installing github.com/fatih/gomodifytags SUCCEEDED
Installing github.com/josharian/impl SUCCEEDED
Installing github.com/davidrjenni/reftools/cmd/fillstruct SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay SUCCEEDED
Installing github.com/godoctor/godoctor SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv SUCCEEDED
Installing github.com/stamblerre/gocode SUCCEEDED
Installing github.com/rogpeppe/godef SUCCEEDED
Installing github.com/sqs/goreturns SUCCEEDED
Installing golang.org/x/lint/golint SUCCEEDED
All tools successfully installed. You are ready to Go :).
なお、ダウンロードした拡張機能は先程確認したGOPATH配下に格納される。
$ls
dlv gocode golint gorename impl
fillstruct gocode-gomod gomodifytags goreturns
go-outline godef gopkgs gotests
go-symbols godoctor goplay guru
goのテストプログラム
gogo.go
という名称で、以下のコードを作成。
package test
import (
"fmt"
)
func main() {
fmt.Println("gogo!golang!!")
}
コードを簡単に解説
- pakage
名前空間を分ける仕組み。
ソースファイルは1つのpackageに属する必要がある。
なお、packageを省いた状態で、goファイルを保存すると勝手にmain packageを作成してくれる。 - import
importすることで外部のパッケージを使用することができる。
fmt
は基本的なI/O機能を提供するパッケージ。 - func
goの関数はfuncで定義を行う。
ソースファイル実行時に、main関数が実行される。
goファイル実行時には
go run ファイル名
をターミナルに打ち込む。
go run /Users/username/golang/gogo.go
gogo!golang!!