ホームページ  >  記事  >  バックエンド開発  >  golang配列から要素を削除する方法

golang配列から要素を削除する方法

青灯夜游
青灯夜游オリジナル
2022-12-08 18:10:1412412ブラウズ

Go 言語では、スライス機能を使用して配列要素の削除操作を実装できます。削除方法: 1. 削除するには append() を使用します。構文は "append(list[:delete Index], list[(delete Index 1):]...)" です。 2. copy() を使用して削除します。構文は "list [:copy(list, list[index:])]"; 3. 削除するには len() を使用します。構文は "list[:len(list)-N]" です。

golang配列から要素を削除する方法

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Go 言語では、スライス機能を使用して配列要素の削除操作を実装できます。スライスは配列の連続するフラグメントへの参照であるため、スライスは参照型です (つまり、C/C の配列型または Python のリスト型に似ています)。このフラグメントは配列全体、または開始インデックスと終了インデックスによって識別されるいくつかの項目のサブセットです。終了インデックスによって識別される項目はスライスに含まれないことに注意してください。

Go 言語はスライスを使用して配列要素を削除します

Go 言語にはスライス要素を削除するための特別な構文やインターフェイスがありません。スライス自体 要素の削除には、削除する要素の位置に応じて、先頭から削除する場合、途中から削除する場合、末尾から削除する場合がありますが、このうちスライスの末尾の要素を削除する場合は、最速。 [関連する推奨事項: Go ビデオ チュートリアル プログラミング教育 ]

最初から削除

要素を削除できますデータ ポインタを直接移動します:

a = []int{1, 2, 3}
a = a[1:] // 删除开头1个元素
a = a[N:] // 删除开头N个元素

データ ポインタを移動せずに移動することもできますが、後続のデータを先頭に移動するには、append を使用してその場で完了することができます (つまり、完了と呼ばれるその場での完了は、元のスライス データに対応するメモリ間隔を指します) 内で完了し、メモリ空間構造は変更されません):

a = []int{1, 2, 3}
a = append(a[:0], a[1:]...) // 删除开头1个元素
a = append(a[:0], a[N:]...) // 删除开头N个元素

copy() 関数を使用して先頭を削除することもできます。要素:

a = []int{1, 2, 3}
a = a[:copy(a, a[1:])] // 删除开头1个元素
a = a[:copy(a, a[N:])] // 删除开头N个元素

中間位置から削除

中央の要素を削除するには、残りの要素を全体的に移動する必要があります。追加またはコピーを使用することもできます

a = []int{1, 2, 3, ...}
a = append(a[:i], a[i+1:]...) // 删除中间1个元素
a = append(a[:i], a[i+N:]...) // 删除中间N个元素
a = a[:i+copy(a[i:], a[i+1:])] // 删除中间1个元素
a = a[:i+copy(a[i:], a[i+N:])] // 删除中间N个元素

末尾から削除

a = []int{1, 2, 3}
a = a[:len(a)-1] // 删除尾部1个元素
a = a[:len(a)-N] // 删除尾部N个元素

先頭要素の削除と末尾要素の削除は、中間要素を削除する特殊なケースと考えることができます。 . 以下に例を見てみましょう。

配列削除例

[例] スライスの指定位置の要素を削除します。

package main

import "fmt"

func main() {
    seq := []string{"a", "b", "c", "d", "e"}

    // 指定删除位置
    index := 2

    // 查看删除位置之前的元素和之后的元素
    fmt.Println(seq[:index], seq[index+1:])

    // 将删除点前后的元素连接起来
    seq = append(seq[:index], seq[index+1:]...)

    fmt.Println(seq)
}

コード出力結果:

golang配列から要素を削除する方法

コードの説明は次のとおりです:

  • 1 行目、宣言整数スライス、a から e までを含む文字列を保存します。

  • 行 4 では、デモンストレーションと説明の便宜上、インデックス変数を使用して、削除する必要がある要素の位置を保存します。

  • 7 行目、seq[:index] は削除された要素の前半を表し、値は [1 2]、seq[index 1:] は削除された要素を表します 後半の値は [4 5] です。

  • 10 行目では、append() 関数を使用して 2 つのスライスを接続します。

  • 12行目は接続された新しいスライスを出力していますが、この時点でインデックス2の要素は削除されています。

コード削除プロセスは、次の図を使用して説明できます。

golang配列から要素を削除する方法

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がgolang配列から要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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