ホームページ  >  記事  >  バックエンド開発  >  golang スライスメソッドの使用方法について話しましょう

golang スライスメソッドの使用方法について話しましょう

PHPz
PHPzオリジナル
2023-03-29 11:26:34637ブラウズ

Go 言語 (golang) のスライスは、自動的に拡大および縮小できる動的配列です。スライスは、基になる配列へのポインタ、要素の数、および容量をカプセル化する構造です。

スライスの実装は基になる配列に基づいているため、スライスの操作は主に基になる配列の影響を受けます。この記事では、いくつかの一般的なスライス方法とその使用法について説明します。

  1. スライスの作成

まず、スライスを作成する必要があります。スライスを作成するには、make 関数を使用する方法と直接宣言する方法の 2 つがあります。

make 関数を使用します:

a := make([]int, 5) //長さ 5 の整数スライスを作成します

make 関数は 2 つのパラメーターを受け取ります。最初のパラメータはスライス要素のタイプで、2 番目のパラメータはスライスの長さです。容量を指定したい場合は、3 番目のパラメータを渡すことができます:

b := make([]string, 5, 10) //長さ 5、容量 10 の文字列スライスを作成します。

直接宣言:

c := []int{1, 2, 3, 4, 5} //5 つの要素を含む整数スライスを作成します

注意してください。この方法で作成されたスライスの長さと容量は同じです。

  1. スライスへのアクセス

インデックスによるスライス要素へのアクセスは、配列の場合と同じです。たとえば、最初の要素にアクセスするには、次のようにします:

fmt.Println(c[0])

  1. スライスの変更
#スライスは可変であるため、インデックスを使用して要素の値を変更できます。

c[0] = 10 //最初の要素を 10

    に変更します。スライス Append
スライスの append メソッドを使用して、要素をスライスに追加します。スライスの容量がすべての要素を収容できるほど大きくない場合は、自動的に拡張されます。

たとえば、次のメソッドを使用してスライスの最後に要素を追加できます:

c = append(c, 6, 7, 8) //最後に 3 つの要素を追加しますスライスの

単一の要素を追加する場合は、次のように記述できます:

c = append(c, 9) //スライスの最後に要素を追加します

    スライスのコピー
  1. #コピー機能を使用してスライスをコピーできます。 copy 関数の最初のパラメータはターゲット スライスで、2 番目のパラメータはソース スライスです。

例:

d := make([]int, len(c))

copy(d, c)


スライスのインターセプト
  1. スライスの [start:end] 形式を使用してスライスをインターセプトし、新しいスライスを取得します。 start はインターセプトされる開始位置 (閉区間) を表し、end は終了位置 (開区間) を表します。

例:

e := c[2:5] //3 番目から 5 番目の要素を含むスライスをインターセプト

start が省略された場合、デフォルトは 0 です。 ; end を省略した場合、デフォルトでスライスの長さが設定されます。

スライスの削除
  1. Go ではスライス要素を直接削除する方法はありません。ただし、新しいスライスを再構築することで要素を間接的に削除できます。

たとえば、次のコードを使用して 3 番目の要素を削除できます:

f := append(c[:2], c[3:]...)

このように、f は 3 番目の要素が削除された新しいスライスになります。

概要

スライスは非常に強力なデータ型であり、データをより便利に操作するのに役立ちます。この記事では、作成、アクセス、変更、追加、コピー、インターセプト、削除などの一般的なスライス操作方法をいくつか紹介します。 Go言語でスライスをマスターしたい場合は、公式ドキュメントを読むとさらに理解が深まります。

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

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