Go言語のmakeは、動的に配列、スライス、マップなどのメモリを割り当てるために使用されます。makeは、newとは異なり、ゼロ値で初期化された配列やスライスを作成することができます。以下に、makeを使用したスライスのサンプルコードを記載。
func main() {
// スライスをmakeで作成する
s := make([]int, 3, 5)
// スライスの要素を設定する
s[0] = 1
s[1] = 2
s[2] = 3
// スライスの要素を出力する
fmt.Println(s) // => [1 2 3]
// スライスの要素数と容量を出力する
fmt.Printf("len=%d cap=%d\n", len(s), cap(s)) // => len=3 cap=5
}
この例では、make関数を使用して、要素数が3、容量が5のint型スライスを作成しています。スライスの要素を設定し、要素を出力しています。また、スライスの要素数と容量を出力しています。
make関数の第1引数は、作成するスライス、配列、マップの型を指定します。第2引数は、作成するスライスやマップの初期要素数を指定します。第3引数は、作成するスライスやマップの容量を指定します。スライスやマップの容量は、内部的に使用される配列のサイズを指定します。スライスの容量は、そのスライスが追加要素を含めることができる最大の要素数です。
make関数を使用する際のTiptsとしては、スライスやマップを作成する場合、要素数と容量を区別することが重要です。スライスの要素数は、スライスに実際に格納されている要素数を指定し、容量は、スライスが拡張することができる最大要素数を指定します。また、make関数を使用する場合は、配列やスライス、マップの初期化に適しており、new関数は単純なポインターの割り当てに適しています。