Go では、スライスは柔軟な配列のような型を表す強力なデータ構造。スライスを扱うとき、スライスを宣言する 2 つの異なる方法に遭遇したことがあるかもしれません:
これら 2 つのアプローチの違いを理解することは、効率的で慣用的な Go コードを作成するために非常に重要です。
var s []int
単純な宣言 var s []int はメモリを割り当てません。これは nil スライスを作成します。これは、 s が空のメモリ アドレスを指すことを意味します。この宣言は通常、必要なスライスの正確なサイズが事前にわからない場合、または後で動的にメモリを割り当てる必要がある場合に使用されます。
s := make([]int, 0 )
対照的に、 s := make([]int, 0) は要素が 0 のスライスにメモリを割り当てます。これは、特定の容量 (拡張が必要になる前に保持できる要素の最大数) でスライスを作成するようにコンパイラーに明示的に指示しています。この場合、容量は 0 です。この方法は、必要なスライスの正確なサイズがわかっている場合、または不必要なメモリの再割り当てを避けたい場合に推奨されます。
どれが良いですか?
一般に、必要なスライスの正確なサイズがわからない場合、またはスライスの正確なサイズがわからない場合は、var s []int を使用する方が慣用的です。メモリを動的に割り当てます。正確なサイズが事前にわかっている場合、またはメモリの再割り当てを回避する必要がある場合は、 s := make([]int, 0) がより良い選択です。
以上がGo スライス: `var s []int` または `s := make([]int, 0)` – どちらの宣言が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。