make()
関数は正規関数ではありません。組み込み関数は言語仕様の一部です。 builtin
パッケージ(builtin.make()
)に記載されているのは、ドキュメンテーションの目的のみです。それは関数の実際の署名ではありません。 3番目のオプションのパラメータは容量です。これは、スライスを作成するときにのみ提供されます。
これは仕様で説明しています:Making slices, maps and channels:
make(T, n) slice slice of type T with length n and capacity n
make(T, n, m) slice slice of type T with length n and capacity m
そしてまた、与えられた要素型T
のための新しい、初期化されたスライス値は組み込み関数make
を使用して作られてSlice types:
で言及これは、スライスタイプと、長さがで、オプションとして容量がであることを指定するパラメータです。 makeで作成されたスライスは、返されたスライス値が参照する新しい隠し配列を常に割り当てます。
make([]int, 50, 100)
new([100]int)[0:50]