かけ足で学ぶ Golang その1 〜環境構築編〜

f:id:Naotsugu:20170417231928p:plain

インストール

Homebrew 更新
$ brew update
$ brew info go
インストール & バージョン確認
$ brew install go
$ go version
go version go1.8 darwin/amd64

ワークスペースの作成

Go では任意のディレクトリをワークスペースとして指定し、ワークスペースの中で全ての開発を行います。 通常はホームに go といったディレクトリを作成しワークスペースとして指定します。

bash_profile か bashrc に GOPATH 環境変数を設定します。

$ mkdir ~/go
$ echo export GOPATH='$HOME/go' >> ~/.bash_profile
$ source ~/.bash_profile

GitHub などで公開されているライブラリを go get コマンドで取得すると、自動的にワークスペースにダウンロードしてビルドしてくれます。 このライブラリはそのまま自身のプログラムから利用することができます。

GitHub や Bitbucket などを RubyGem や Maven のようなリポジトリとして使えるといった感じです。

ワークスペースは以下のディレクトリで構成されます。

ディレクトリ 説明
src Goのソース
pkg ビルドにより作成されるバイナリ
bin ビルド(インストール)により作成される実行形式ファイル

src 内には GitHub から取得したものは github.com/user/foo のように GitHub のリポジトリのURLと同じ階層で格納します。

Hello World

$GOPATH/src 以下にソースを作成します。 GitHub でソース管理することを視野に以下の配置でソースを作成します(便宜的に user というアカウントとします)。

$ mkdir -p $GOPATH/src/github.com/user/hello
$ cd $GOPATH
$ touch hello.go

簡単な Hello World を作成しましょう。

package main

import "fmt"

func main() {
    fmt.Printf("Hello, World.\n")
}

main パッケージのmain関数がエントリポイントになります。

実行は go run で行います。

$ go run hello.go
Hello, World.

Go のツールは $GOPATH が起点になります。 go install コマンドで作成したアプリケーションをインストールしましょう。

$ cd $GOPATH
$ go install github.com/user/hello

install すると、$GOPATH/bin が作成され、その中に実行ファイル hello が出来上がります。

実行してみましょう。

$ ./bin/hello
Hello, World.

Go が作成する実行ファイルは一般的な実行ファイルよりサイズが大きくなります。ここで作成した hello も1.6M ほどになりました。

Go が OS に依存する共有ライブラリを利用せず、自前で実装しているためです。これにより実行ファイルのポータビリティを確保しているのです。

ライブラリの作成

greet パッケージを作成します。

$ cd $GOPATH
$ mkdir -p src/github.com/user/greet
$ touch src/github.com/user/greet/greet.go

Greet 関数を定義します。

package greet

func Greet(s string) string {
    return "Hello " + s
}

Go では外部に公開する関数は先頭を大文字にします。

install しましょう。

$ go install github.com/user/greet

pkg ディレクトリが作成され、greet.a が作成されます。

hello.go を以下のように修正します。

package main

import (
    "fmt"
    "github.com/user/greet"
)
func main() {
    fmt.Println(greet.Greet("Go"))
}

install して実行してみます。

$ go install github.com/user/hello
$ ./bin/hello
Hello Go

JetBrains Gogland

コード補完やジャンプ、デバッグなどやっぱりIDEが便利。

現在は Early Access Program 版として公開されています。

Create New Project を選択。

f:id:Naotsugu:20170407222715p:plain

$GOPATH の設定が自動で設定されます。

f:id:Naotsugu:20170407234610p:plain

まずは、Preferences… から Theme をDarcula に変えましょう。

f:id:Naotsugu:20170407222813p:plain

ついでにタブサイズが 8 になっているので 4 に変えます。

f:id:Naotsugu:20170407223106p:plain

こんな感じです。

f:id:Naotsugu:20170407223233p:plain

main パッケージの main メソッドは、メソッドの横に出る緑の矢印で go run して実行できます。


次回は、

etc9.hatenablog.com