ホームページ >バックエンド開発 >Golang >golang スライスには make が必要ですか?

golang スライスには make が必要ですか?

尚
オリジナル
2020-01-14 15:36:365153ブラウズ

golang スライスには make が必要ですか?

スライスは Golang の特別なデータ構造であり、このデータ構造はデータ コレクションの使用と管理が容易です。スライスは動的配列の概念に基づいて構築されており、必要に応じて自動的に拡大および縮小できます。

make() 関数を使用してスライスを作成する

Golang の組み込みの make() 関数を使用してスライスを作成します。このとき、スライスの長さを指定するパラメータ:

// 创建一个整型切片
// 其长度和容量都是 5 个元素
slice := make([]int, 5)

このとき、スライスの長さのみが指定されているため、スライスの容量と長さは等しくなります。長さと容量を個別に指定することもできます。

// 创建一个整型切片
// 其长度为 3 个元素,容量为 5 个元素
slice := make([]int, 3, 5)

長さと容量をそれぞれ指定すると、作成されたスライスと基になる配列の長さは指定された容量になりますが、その後すべての配列要素にアクセスできるわけではありません。初期化。

Golang では、長さよりも小さい容量のスライスの作成は許可されていないことに注意してください。作成されたスライスの容量が長さより小さい場合、コンパイル時にエラーが報告されます:

// 创建一个整型切片
// 使其长度大于容量
myNum := make([]int, 5, 3)

リテラルによるスライスの作成

スライスを作成するもう 1 つの一般的な方法は、スライス リテラルを使用することです。この方法は、配列の作成に似ていますが、 [] 演算子の値。初期の長さと容量は、初期化中に指定された要素の数に基づいて決定されます。

// 创建字符串切片
// 其长度和容量都是 3 个元素
myStr := []string{"Jack", "Mark", "Nick"}
// 创建一个整型切片
// 其长度和容量都是 4 个元素
myNum := []int{10, 20, 30, 40}

スライス リテラルを使用してスライスを作成する場合、初期の長さと容量を設定することもできます。必要な長さと容量を初期化時にインデックスとして指定するだけです。次の構文は、インデックス作成を使用して、長さと容量が 100 要素のスライスを作成する方法を示しています。

// 创建字符串切片
// 使用空字符串初始化第 100 个元素
myStr := []string{99: ""}

Golang の詳細については、golang チュートリアル 列に注目してください。

以上がgolang スライスには make が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。