golang

よさげなところ

  • コンパイルが超速
  • クロスコンパイル容易
  • UTF8ネイティブ
  • 並列化が標準装備
  • パッケージ管理が標準装備

better Cとして必要なことは満たしている。スクリプトっぽくも使えるし。 ゴウラング!実際すごい。

いろいろリンク集

インストール

ubuntu13.04

apt-get install golang golang-go.tools gccgo-go mercurial git
export GOROOT=/usr/lib/go
export GOPATH=~/golang
export PATH=$PATH:$GOPATH/bin

GUIツールキットであるgxuiを動かすにはさらに下記が必要だった。

apt-get install libxrandr-dev libxcursor-dev libxinerama-dev

OSX

brew install go
export GOROOT=/usr/local/Cellar/go/1.5.1/libexec/
export GOPATH=~/golang
export PATH=$PATH:$GOPATH/bin

バッケージ

godoc

go get golang.org/x/tools/cmd/godoc
godoc -http=:6060

紹介サイト

引数解析

GUIツールキット

画像処理

プロット

他の言語と

  • gopy CPythonから呼ぶ!
  • cgo Cのライブラリを呼ぶ

ゲームエンジン

クロスコンパイル

パッケージ作成

ファイル読み書き


import (
	"bufio"
	"fmt"
	"os"
)

func main() {

	fp, err := os.Open("test.txt")
	if err != nil {
		panic(err)
	}

	scanner := bufio.NewScanner(fp)
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}

	fpw, err := os.Create("hogehoge.txt")
	if err != nil {
		panic(err)
	}

	w := bufio.NewWriter(fpw)
	fmt.Fprint(w, "Hogehoge!")
	w.Flush()

}

IDE

  • Ubuntu14.04でgdbを動かすには、BUILDARGSを-iから-gcflags "-N -l" に変更することが必要だった。

Docker

GolangOnDocker