急にGoで書かれたソースコードを読む必要があったので、最低限これくらいは把握しておくと、雰囲気はつかめるかな、ということをまとめました。あくまで読むだけです。書くにはいろいろ足りません。
気になったら詳細な解説はそれぞれ調べてください。
関数の書式
以下はMyStructという自分で作った構造体のメソッドを定義する例です。
func (s *MyStruct) addAndGetValue(input int) int {
s.value += input
return s.value
}
引数int、戻り値int、構造体のポインタ指定など、こんな感じになります。
defer
deferは予約語です。
func someFunction() {
defer fmt.Println("グラディウス")
…
}
このように書いておくと関数の最後にdeferで指定した文を最後に実行することができます。
ロックの開放とかですかね。
スライスとmake
データ構造がわかれば、そのプログラムはわかったも同然ですよね(いいすぎ)。
スライスは可変長配列です。makeは初期化に使います。まあnewみたいなもの。newもあります。
hoge := make([]int, 100)
mapとmapのループ
mapも組み込まれています。
rangeですべての要素に対してループできます。
var m map[string]int
sum := 0
for _, value := range m {
sum += value
}
変数宣言はvarだったり、:=だったり。
"_"はブランクを表します。keyを使わない場合はこれを使います。
Goは使わない変数宣言やimportが許されません。
GOPATH
環境変数です。
importの基準となるディレクトリです。CLASSPATH的な。
importされているモジュールを参照したいときは$GOPATH/srcあたりを探すと見つかるかもしれません。
参考
http://golang.jp/effective_go
http://qiita.com/mizukmb/items/b543f88bc37c9a75673f