2009年11月14日土曜日

Googleのプログラミング言語Goをインストールした

巷で噂のThe Go Programming Languageをインストールした。

すんなり入ったわけじゃなかったのでメモしておく。

環境はVM上のUbuntu(x86).

実際に作業したときは環境変数を後で設定しているので、少し手順がおかしいかも。

/* 一般ユーザでの作業。ホームディレクトリにいる。 */
/* Goのコマンドを入れるディレクトリを作る */
$mkdir gobin

/* 環境変数設定 */
$export GOROOT='/home/kurohuku/util/go'
$export GOBIN='/home/kurohuku/gobin'
$export GOARCH='386'
$export GOOS='linux'
$export PATH='$PATH:/home/kurohuku/gobin'

/* hgコマンドとやらをインストールする */
$sudo apt-get install python-setuptools python-dev
$sudo easy_install mercurial

/* goを持ってくる */
$cd util/
$hg clone -r release https://go.googlecode.com/hg/ $GOROOT

/* アップデート? */
$cd go/
$hg pull
$hg update

/* コンパイル+インストール+テスト */
$cd src/
$./all.bash

/* テストが問題なければインストール終了 */

GOARCH=386と指定していると、コマンドは8g,8lなどと8が頭につくものになるようだ。

また、go/miscにcgo,emacs,vim,xcodeというディレクトリがある。一応Emacs使いなので、go-mode.elとgo-mode-load.elをマイelファイルディレクトリにコピー。設定ファイルまで用意してくれてるとは素晴らしいですね。

と、思ったらインデントが気にくわない。これがデフォってことはないだろうから私がなにかを間違えているのだろうか。

以下はチュートリアルに載っているサンプルコードの表示文字を少し変更しただけのコード.

package main

import "fmt"

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

適当なファイル(hello.go)に保存してコンパイル->実行する。

$8g hello.go
$ls
hello.go hello.8
$8l hello.8
$ls
hello.go hello.8 8.out
$./8.out
Hello, 'go' World!

/* ファイルサイズ */
$ls -l|awk '{print $5 " " $8}'
581735 8.out
5192 hello.8
83 hello.go

ちなみに、気にくわないインデントというのは、こんな感じ。

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

0 件のコメント:

コメントを投稿