2016-09-14 17 views
0

を初期化し、私はそれがに、不要なメモリ(https://github.com/golang/go/wiki/CodeReviewComments#declaring-empty-slices)を割り当てないようお ゴー - 空のスライスを宣言するために、空のスライス

t := []string{} 

var t []string 

を好む必要があることを知っています。これはまだ私が

type example struct { 
    s []string 
} 
e := &example{} 

すなわちを持っている場合、

e.s = []string{} 

または

var s []string 
e.s = s 
+1

あなたの最後の例は何もしません。これは、 'example.s'が既に正しい型のnilスライスであるためです。この場合、何もする必要はありません。 – JimB

+0

申し訳ありません - 私の質問を編集しました。まだ本当ですか? – ryebread

+1

コードが無効であっても、あなたが意味するものを得ました。 'e.s'と' s'はどちらも 'nil'なので、何もしない' e.s = nil'を代入するだけです。 'e.s'はすでに正しい型ですので、何もする必要はありません。 – JimB

答えて

2

example.sを使用する方が良いでしょう適用されますすでに宣言し、そうあなたがする必要は何もありません。

e := &example{} 
e.s = append(e.s, "val") 
fmt.Println(e.s) 
関連する問題