以下の2つのサイトを参考にインストールしていじってみました。
■ 早速 Go 言語を試してみる! - IT戦記
■ The Go Programming Language
環境はMacOSX 10.5です。
まず作業用ディレクトリを作成する。
$ cd ~
$ mkdir go
$ mkdir bin
次にPATHを設定する。~/.bashrcに以下を追加。
export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=amd64
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH
MercurialをインストールしてMercurialリポジトリからチェックアウトしてくる。
$ sudo easy_install mercurial
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
ビルド
$ cd $GOROOT/src
$ ./make.bash
これでインストールは完了。
また~/$GOROOT/misc/emacs/にgo-mode-load.elとgo-mode.elがあるのでelisp(~/.site-lisp)にコピーし、.emacs.elに以下を追加することでEmacsでgo-modeが使えるようになる。
(require 'go-mode-load)
それでは恒例のHello, World!を書いてみます。
Hello.go
package main
import "fmt"
func main(){
fmt.Printf("Hello, World!\n")
}
コンパイル、リンク、実行してみます。
$ 6g Hello.go
$ 6l Hello.6
$ ./6.out
Hello, World!
$
コンパイルコマンドは環境によって変わってきますので注意が必要です。
ついでにFizzBuzzも書いてみました。
FizzBuzz.go
package main
import "fmt"
func main(){
for i := 1; i <= 100; i++ {
if i % 15 == 0 {
fmt.Printf("FizzBuzz ");
} else if i % 5 == 0 {
fmt.Printf("Buzz ");
} else if i % 3 == 0 {
fmt.Printf("Fizz ");
} else
fmt.Printf("%d ", i);
}
}
fmt.Printf("\n");
}
とりあえず、if-elseのとこでわざわざ中括弧が必要なのと
PrintfのPを大文字にするのが面倒でした。