Go
Mac
golang

Macでgo言語開発環境を作る

More than 3 years have passed since last update.

インストール

brewで入れます。

$ brew install go
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/go-1.2.2.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring go-1.2.2.mavericks.bottle.tar.gz
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  http://golang.org/doc/code.html#GOPATH

`go vet` and `go doc` are now part of the go.tools sub repo:
  http://golang.org/doc/go1.2#go_tools_godoc

To get `go vet` and `go doc` run:
  go get code.google.com/p/go.tools/cmd/godoc
  go get code.google.com/p/go.tools/cmd/vet

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
?  /usr/local/Cellar/go/1.2.2: 3981 files, 115M

はいった。確認。

$ go version
go version go1.2.2 darwin/amd64
$
$
$
$go help
Go is a tool for managing Go source code.

Usage:

    go command [arguments]

The commands are:

    build       compile packages and dependencies
    clean       remove object files
    env         print Go environment information
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

    c           calling between Go and C
    gopath      GOPATH environment variable
    importpath  import path syntax
    packages    description of package lists
    testflag    description of testing flags
    testfunc    description of testing functions

Use "go help [topic]" for more information about that topic.

はいってるぽい。

HelloWorldしてみる。

まず、Hello.goファイルを作成して、以下のように書く。

go,hello.go
  1 package main
  2
  3 import "fmt"
  4
  5
  6 func main() {
  7     SayHello()
  8 }
  9
 10 func SayHello() {
 11     fmt.Println("Hello World for go lang")
 12 }

ビルドする。

go build hello.go

すると、helloという実行ファイルができる。
ということで、実行してみる。

$ ./hello
Hello World for go lang

やっぽい。

パスの設定

go getなどで、goのモジュールをどんどんインストールできるようなんだけど、
$GOPATHが設定されていないとおこられるよう。
どこでもいいので、今は、以下のように.zshrcに設定した。

18 if [ -x "`which go`" ]; then
19       export GOROOT=`go env GOROOT`
20       export GOPATH=$HOME/code/go-local
21       export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
22 fi

最後に

net/httpモジュールがかなり便利らしく、簡単にwebサーバを立てられるみたい。
高速が売りなので、バックエンド側のPHPソースを入れ替えたい。

あと、revelなどのweb frameworkなどが使いやすいのか使ってみる予定。

以上。