Go事始め作業ログ

  • 58
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Goとは

  • 完全なコマンド操作ツールセットを持つ(クロスコンパイルも簡単)
  • コンパイル速度が速く、コンパイル済みプログラムの実行速度もC言語やC++に迫る速さ
  • タイプセーフかつメモリセーフ

らしい。早速プラットフォームをインストールしてみる。

Goのインストール

Homebrewからインストールする。

$ brew install go

ターミナルを再起動すると、goコマンドが使えるようになる。

GOROOT と GOPATH

を環境変数に指定するように各所で言われているが、今回はGOROOTを指定しない。

  • GOROOT Goのルートディレクトリを指す
  • GOPATH Goのワーキングディレクトリを指す

ところが、GOROOTはインストールしたGoに既に環境変数として登録されており、既に然るべき場所を参照している。

$ go env GOROOT
# /usr/local/Cellar/go/1.3.2/libexec

ので、複数バージョンのGoをインストールして、バージョンをまたいで使ったりするのであれば個別に上書き指定する必要があるかもしれないが、素直に使うので今回はそれを行わなかった。言い換えれば、exportされるGOROOTは go env GOROOT を上書きする事になる。

GOPATHは作業ディレクトリを参照するようにしておく。

$ export GOPATH=/Users/1000ch/workspace/go

Hello, World

GOPATH配下のsrcフォルダに適当なプロジェクトを作成する。

$ mkdir $GOPATH/src/helloworld

プログラムを作成する。ここではmain.goとしておく。

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

実行するには、以下のようにrun + ファイル名で実行する。

$ go run $GOPATH/src/helloworld/main.go
# hello, world

パッケージをダウンロード

go getによってリモートのGoパッケージをダウンロードすることが出来る。GitHubやらBitBucketやらをリモートとし、対応するバージョンシステムを利用して取得。

例えば以下のようにGitHubにあるGoのパッケージをダウンロードすると、$GOPATH/srcにダウンロードされる。

$ go get github.com/golang/lint

パッケージをインストール

go installによってパッケージをインストール可能。インストールしたパッケージは$GOPATH/binに配置される。パッケージ名は.goファイルのパッケージ名に基づく。

$ go install pkgname

バイナリが$GOPATH/binに生成される。これは実行可能ファイル。

$ ./bin/pkgname

パッケージのビルド

go buildによってパッケージをビルド可能。go installとは異なり、カレントディレクトリに配置される。

$ go build pkgname

カレントディレクトリにgo install同様の実行可能ファイルが生成される。

$ ./pkgname