golang スライスの使用法

WBOY
リリース: 2023-05-16 15:22:07
オリジナル
678 人が閲覧しました

Golang は広く使用されているプログラミング言語であり、そのシンプルさと効率性がますます多くの開発者を魅了しています。 Slice 型は、Golang でよく使われるデータ構造の 1 つでもあり、動的な拡張をサポートするだけでなく、スライス操作も実装します。この記事では、Slice の使い方を詳しく紹介します。

1. スライスとは何ですか?

Golang では、Slice は動的配列として理解できます。静的配列と比較して、Slice は柔軟性が高く、容量を自動的に拡張および削減できるため、容量サイズの制限がなくなり、コードの柔軟性と再利用性が大幅に向上します。

A スライスには、基礎となる配列ポインター、長さ、容量という 3 つの重要な要素が含まれています。長さはスライスに保存される要素の数を表し、容量はスライスが保存できる要素の最大数を表します。

2. スライスの作成と初期化

Golang では、make 関数を使用してスライスを作成および初期化するか、スライス リテラルを直接使用できます。

1. make 関数を使用してスライスを作成します。

make 関数には、スライス タイプ、長さ、容量という 3 つのパラメータがあります。このうち、長さは指定する必要がありますが、容量は任意です。容量が指定されていない場合、容量はデフォルトで長さと同じになります。

サンプルコード:

s := make([]int, 5)      // 创建一个初始值为 0,长度为 5,容量为 5 的 Slice
s := make([]int, 5, 10)  // 创建一个初始值为 0,长度为 5,容量为 10 的 Slice
ログイン後にコピー

2. スライスリテラルを使用してスライスを作成します。

スライス リテラルは一対の大括弧で囲まれ、各値はカンマで区切られます。

サンプル コード:

s := []int{1, 2, 3, 4, 5} // 创建一个包含 1,2,3,4,5 的 Slice
ログイン後にコピー

3. スライス操作

1. スライスのアクセスと変更。

配列と同様に、添え字を使用してスライス内の要素にアクセスできます。

サンプル コード:

s := []int{1, 2, 3, 4, 5}
fmt.Println(s[0])  // 打印 Slice 中的第一个元素
ログイン後にコピー

スライスは変更操作をサポートしていますが、スライスへの変更は基になる配列と、基になる配列を参照する他のスライスに影響することに注意してください。

サンプルコード:

s := []int{1, 2, 3, 4, 5}
s[0] = 6 // 将 Slice 中的第一个元素修改为 6
ログイン後にコピー

2. スライスの追加と削除。

要素をスライスに追加するには、組み込み関数 append を使用できます。この関数は、元のスライスを変更せずに、新しいスライスを返します。

サンプルコード:

s := []int{1, 2, 3, 4, 5}
s = append(s, 6) // 在 Slice 中追加一个元素 6
ログイン後にコピー

スライスからの要素の削除は、append 関数によっても実装されます。削除する要素を除外するには、スライス操作を使用する必要があります。

サンプルコード:

s := []int{1, 2, 3, 4, 5}
s = append(s[:2], s[3:]...) // 删除 Slice 中的第三个元素,这里使用了切片操作
ログイン後にコピー

3. Slice のスライス操作。

配列と同様に、Slice もスライス操作をサポートします。スライスとは、元のスライスを「切り取り」、連続する要素の一部を切り取って、新しいスライスを取得することを指します。

スライス操作の構文は、slice[low:high] です。ここで、slice はスライスされるスライスを表し、low と high はスライスの位置を表しますが、high の要素は含まれません。

サンプルコード:

s := []int{1, 2, 3, 4, 5}
slice := s[1:3] // 返回 [2, 3]
ログイン後にコピー

4. スライスの拡張と縮小

スライスを使用する場合、基礎となる配列の容量がその効率とパフォーマンスに影響します。スライスの容量が不足している場合は拡張する必要があり、容量が大きすぎる場合は削減してメモリ領域を節約できます。

拡張のプロセスでは、スライスの容量が不十分な場合、長さと容量が通常は元の 2 倍になる新しい基になる配列が作成され、元のスライス内のすべての要素が作成されます。新しい配列にコピーされます。

サンプル コード:

s := make([]int, 5, 10)
s = append(s, 6) // 在 Slice 中追加一个元素 6
ログイン後にコピー

削減プロセスでは、スライス操作を使用して、基になる配列の長さをスライスの長さと同じになるように指定し、それによって容量を削減します。

サンプルコード:

s := []int{1, 2, 3, 4, 5}
s = s[:3] // 缩减 Slice 的容量为 3
ログイン後にコピー

5. 概要

この記事では、Slice の作成、初期化、アクセス、変更、追加、削除、スライス、拡張、縮小について詳しく紹介します。 Golang では操作を待ちます。 Slice の使用をマスターすると、コードの柔軟性と効率が大幅に向上し、高品質の Golang フロントエンド、バックエンド、モバイル アプリケーションの開発に役立ちます。この記事の紹介を通じて、読者が Golang のスライス タイプについてより深く理解し、応用できることを願っています。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート