思いがけずにハマってしまったので、色々と自戒を込めて備忘録がてらにメモ。 Go言語では変数定義に色々なパターンがあるが、特に:=を用いた短縮記法がよく使われる。 この短縮記法を用いた変数定義で、割とレビューでは気付きにくい問題が発生することがある。 具体的に問題を再現したコードは以下の通り。 例: main1.go package main import "fmt" func main() { msg := "xxx" // ifでもforでも良いが、ここでブロック. { msg, err := exec() // この行が落とし穴. if err != nil { panic(err) } …