プログラミング言語Go

package main

import "fmt"
import "sort"

func sum(a []int) int {
	s := 0;
	for _, v := range a {
		s += v;
	}
	return s;
}
func sum2(m map[string]int) string {
	s := "";
	for k, _ := range m {
		s += k;
	}
	return s;
}

type T struct { a, b int }

func main() {
	a := []int{3,2,1};
	m := map[string]int{"one":1, "two":2};
	m["three"] = 3;
	t := T{0, 0};
	t.b = 7;
	a2 := sort.IntArray(a);
	sort.Sort(a2);
	fmt.Println(a2);
	fmt.Println(sum(a), sum2(m), t);
}

// 実行結果
[1 2 3]
6 threetwoone {0 7}

Windows版のGoを少し触ってみた。まずコンパイルでつまずいた。恐らく日本語のパスが入っている場所にインストールしたのがいけなかったらしい。


なかなか良さそうだが、まだ過渡期でドキュメントが古く、説明が間違っている。例えば、文末にセミコロン不要とあったが、今のバージョンでは必要みたい。しかし、ハッシュやfor文のiterateが実装されているなどは関心できる。また、ガーベッジコレクションが実装されているので、メモリ管理は楽。


印象としてはD言語に近いような気がする。まだ良い書籍などが出ていないようなので、今後に期待。


追記(2010/12/15):
現状のgo-windowsが古いバージョンであり、セミコロンは省略できるようになったらしい。