ホームページ > バックエンド開発 > Golang > Golang のスライス関数と append() 関数の使用方法について話しましょう

Golang のスライス関数と append() 関数の使用方法について話しましょう

PHPz
リリース: 2023-04-27 10:44:02
オリジナル
949 人が閲覧しました

Golang のスライスでは、append() は非常に重要な関数であり、非常に頻繁に使用される関数です。この記事では、Golangのslicing関数とappend()関数の使い方を紹介します。

1. Golang のスライシング

配列と比較して、Golang のスライシングにはより強力な機能があります。スライスは、長さが動的に変更できるという点で配列とは異なります。 Golang では、スライスは配下の配列を指す参照型であり、スライスの容量が不足した場合、必要に応じてスライス サイズが自動的に増加します。

スライスを定義する方法は次のとおりです。

var s1 []int // []int 表示定义了一个 int 类型的切片
ログイン後にコピー

この時点では、基になる配列が定義されていないため、s1 の長さと容量は両方とも 0 です。

長さ 5、容量 10 のスライスの定義は、make() 関数を使用して実装できます。

s2 := make([]int, 5, 10) // 长度为 5,容量为 10
ログイン後にコピー

slice[index] は、スライス内の要素にアクセスできます。基本的には、基礎となる配列内の要素です。 lice[start:end] は、開始 (これを含む) から終了 (これを含まない) までのサブスライスを取得できます。例:

a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
fmt.Println(a[3])    // 4
fmt.Println(a[1:5])  // [2 3 4 5]
fmt.Println(a[:5])   // [1 2 3 4 5]
fmt.Println(a[5:])   // [6 7 8 9 10]
fmt.Println(a[:])    // [1 2 3 4 5 6 7 8 9 10]
ログイン後にコピー

2. append() 関数

append() 関数は、スライスの末尾に要素を追加し、新しいスライスを返すことができます。 append() 関数には次のような用途があります。

1. スライスの末尾に要素を追加します

次のコードは、要素を s1 に追加し、新しいスライスを生成します:

s1 := []int{1, 2, 3, 4, 5}
s2 := append(s1, 6, 7)
fmt.Println(s1) // [1 2 3 4 5]
fmt.Println(s2) // [1 2 3 4 5 6 7]
ログイン後にコピー

注: append() 関数を使用します。スライスに要素を追加する場合、容量を超えていなければ基になる配列は変更されませんが、容量を超えると新しい基になる配列が生成されます。

2. 1 つのスライスを別のスライスに追加する

次のコードは、s2 の要素を s1 に追加し、新しいスライスを生成します:

s1 := []int{1, 2, 3, 4, 5}
s2 := []int{6, 7}
s3 := append(s1, s2...)
fmt.Println(s1) // [1 2 3 4 5]
fmt.Println(s2) // [6 7]
fmt.Println(s3) // [1 2 3 4 5 6 7]
ログイン後にコピー

注: append() を使用する場合あるスライスを別のスライスに追加する関数では、s2 の後に 3 つのドット (...) を追加する必要があります。これは、s2 が分割されて要素が取り出されるという意味です。

3. append() による新しいスライスの生成

次のコードは、長さ 0、容量 0 のスライス s1 を作成し、それに要素を追加します。

var s1 []int
s1 = append(s1, 1)
s1 = append(s1, 2, 3)
fmt.Println(s1) // [1 2 3]
ログイン後にコピー
append() 関数は新しく生成されたスライスを返しますが、元のスライスの長さが足りない場合は新しい配列が作成されるため、スライス長が 0 の場合でも append() 関数を使用できます。

3. 概要

この記事の導入部を通じて、Golang のスライス関数と append() 関数の使用法について学習しました。 Golang においてスライスは非常に重要であり、実際の開発でも頻繁に使用されるため、Golang 開発者にとってスライスの基本的な使い方をマスターすることは非常に重要です。 append() 関数を使用する場合は、その戻り値に注意する必要があります。また、... 演算子を使用して 1 つのスライスを分割し、それを別のスライスに追加する場合には特に注意する必要があります。

以上がGolang のスライス関数と append() 関数の使用方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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