Goを少し理解していく

プルリクを貰った

ありがたいことに、サンプル用プロジェクトなのにsecondrykeyさんにプルリクを貰った!

https://github.com/nyo3q1/golang_simple_api/pull/1

コードを見ると全体的にGoらしい書き方に修正してくれていた。

Goが分かっていないというのもあるけど。スクリプト言語に甘えていたツケが回ってきた感が凄いので、分からないなりに噛み砕いて理解していく。

構造体の配列はポインタで返す

DBから値を取得、それを元に構造体の配列を生成し返却する関数の戻り値はポインタで返す。

理由

大きな構造体や配列は値のまま返すとコピーの負荷が高いから

わかりやすく書いてある記事

https://qiita.com/knsh14/items/8b73b31822c109d4c497#receiver-type

コードはこんな感じ

type People struct {
    id   int64
    name string
}

type Peoples []People

func GetPeoples() (*Peoples, error) {
    // 略
    return &peoples, nil
}

log.Fatal(funhttp.ListenAndServec())の動き

http.ListenAndServe は異常が起きた時のみ error を返すようになっている https://stackoverflow.com/questions/25920963/in-what-situation-will-http-listenandserve-return https://golang.org/doc/articles/wiki/#tmp_3

このQiitaが簡単にまとまっている

https://qiita.com/_kyamasan/items/f27978906c23fc3c49c3

ありがとう Shizuoka.go

このイベントに参加していなければプルリクは貰えませんでした。

本当に...ありがとう...