Go で空のスライスを定義する方法
Go では、空のスライスをいくつかの方法で定義できますが、一部のプログラマーは疑問に思っています。各アプローチの違いや利点。
3 つの共通点メソッド
-
var foo []int: これは単に、初期値が nil に設定された整数のスライスとして変数 foo を初期化します。
- foo := []int{}: これは foo を初期化する短い変数宣言です整数の空のスライスとして。中括弧 {} は、これが空のスライスであることを示します。
-
foo := make([]int, 0): make 関数を使用すると、空のスライスを明示的に作成できます。指定された種類と容量。この場合、容量として 0 が使用されます。
相違点
これら 3 つのメソッドの主な違いは、(1) foo を nil に初期化することです。 (2) と (3) は nil 以外の空のスライスを割り当てます。 foo.
共通点
使用された方法に関係なく、3 つの結果はすべて次の属性を共有します:
- スライスの長さはゼロ (len (foo) == 0)
- スライス容量はゼロです (cap(foo) == 0)
- これらの初期化中にメモリは割り当てられません
最良のアプローチ
使用する方法の選択は、特定の使用例。
- 後で再割り当てされる nil スライスの場合、 var foo []int が適しています。
- 短い変数宣言の場合は、foo := []int{} または foo := make([] int, 0) は簡潔なオプションです。
- 明示的な初期化子を使用した変数宣言の場合、 var foo = []int{} または var foo = make([]int, 0) は、明確で読みやすい意図を提供します。
概要
Go で空のスライスを定義するには 3 つの方法すべてが有効であり、(1) が使用されます。 nil スライスの場合、(2) と (3) は nil 以外の空のスライスの場合と交換可能です。適切な選択は、開発者の特定のコンテキストと好みによって異なります。
以上がGo で空のスライスを定義するさまざまな方法とは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。