[back]

2024-09-28 13:54:08 +09:00

# 備忘録(Golang)

## 空スライスとnilスライスは違う

fmt.Sprintfでは両方[]になるけど実態が違う。らしい。 var s []*Hogeだとnilスライス(未初期化の値)で、s := []*Hoge{}だと空スライスになる。 intだのstringだのにnilの概念がない事と言い微妙に言外の挙動を感じる。慣れればなんてことなさそうだけども

## := と =

:=が宣言+代入、=は代入のみ var err errorが先に宣言されてて、x, err := hoge()としても問題なかった気がする(シャドーイングされてる?)

## お気持ち

全体的に簡潔に書くことを奨励されているような感じがするんだけど言語仕様的になんとなくコードが長くなるのは意図してやられてるんでしょうか そうなんだろうな Google様だぜ?