2024-09-28 13:54:08 +09:00
fmt.Sprintf
では両方[]
になるけど実態が違う。らしい。
var s []*Hoge
だとnilスライス(未初期化の値)で、s := []*Hoge{}
だと空スライスになる。
intだのstringだのにnilの概念がない事と言い微妙に言外の挙動を感じる。慣れればなんてことなさそうだけども
:=
が宣言+代入、=
は代入のみ
var err error
が先に宣言されてて、x, err := hoge()
としても問題なかった気がする(シャドーイングされてる?)
全体的に簡潔に書くことを奨励されているような感じがするんだけど言語仕様的になんとなくコードが長くなるのは意図してやられてるんでしょうか そうなんだろうな Google様だぜ?