ksaitoの日記

日々試したことの覚え書き

Go言語入門

GoogleがリリースしたGo言語を試してみました。
Go言語は、C言語のようなシステム言語でガベージコレクションを備えて、シンプルでコンパイルがすごく早いのが特徴だそうです。
MacBookMacPortsmercurialがインストールされていれば簡単に試すことができます。

ダウンロード

googleのオフシャルなソースコード管理は、mercurialなんですねぇ。

$ hg clone -r release https://go.googlecode.com/hg/ go
全チェンジセットを取得中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
3976 のチェンジセット(16799 の変更を 2931 ファイルに適用)を追加
作業領域の更新中
1640 個のファイルが更新, 0 個のファイルがマージ, 0 個のファイルが削除, 0 個のファイルが衝突未解決
$

コンパイル

環境変数を設定するときにGOOSにOSアーキテクチャを設定します。

$ env | grep \^GO
GOBIN=$HOME/bin
GOARCH=amd64
GOROOT=$HOME/go
GOOS=darwin
$ cd $GOROOT/src
$ ./all.bash

Hello, World!

go言語のソースを作ってコンパイルして実行します。

$ cat >hello.go <<EOF
> package main
> 
> import "fmt"
> 
> func main() {
>  fmt.Printf("hello, world\n")
> }
> EOF
$ 6g hello.go 
$ 6l hello.6 
$ ./6.out
hello, world
$ 

ううむ、短いソースだとコンパイルが、すごく早いか分からない。
コマンドも、コンパイラが"6g"でリンカが"6l"って、とんちがきいていますが、正直うちにくい。
mavenやantにあたるものはないのかな?