【Golang】varではまった
https://play.golang.org/p/Ovk4maRlO4
今さらだけど知らなかった、これ。
var s *Sample
で宣言するとsの実体はnilだけど
var s Sample
で宣言すると初期化されたStructがつくられている、つまり
s := Sample{}
と同じ。
いや、自分なら
var s Sample
なんて書き方しないけど、参考にしてたコードが
var s Sample hoge(&s)
って書いてて、はじめからポインタで宣言しろよと思って、
var s *Sample hoge(s)
に書き直したら、nilを渡した先で死んでたみたいな話。
へー、わかりにくいからnewか{}リテラルで書くけど、まあ頭の片隅においておこう。