ホームページ > バックエンド開発 > Golang > golang スライス マップの削除

golang スライス マップの削除

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

Golang では、スライスとマップはどちらも非常に一般的に使用されるデータ構造です。実際のアプリケーションでは、既存のスライスまたはマップから特定の要素またはキーと値のペアを削除する必要があることがよくあるため、それらの削除操作も非常に重要です。この記事では、Golang でスライスとマップを削除する方法に焦点を当てます。

  1. Golang でのスライスの削除

Golang では、スライス内の要素を削除するには、通常、append 関数を使用するか、copy 関数を使用する 2 つの方法があります。以下にこれら 2 つの方法を紹介します。

1.1 append 関数を使用してスライス内の要素を削除する

append 関数を使用してスライス内の要素を削除する方が直感的です。具体的な方法は、前に要素を再結合することです。削除する要素の後に新しいスライスを作成します。サンプル コードは次のとおりです。

// 删除slice中的某个元素
func removeSliceElement(slice []int, index int) []int {
    return append(slice[:index], slice[index+1:]...)
}
ログイン後にコピー

この例では、[]int 型のスライスと削除する要素のインデックス値を受け入れる、removeSliceElement という関数を定義します。関数の戻り値は、削除後の新しいスライスです。

具体的な手順としては、まずスライスを分割し、削除する要素の前後の要素を取り出します。次に、これら 2 つの要素を新しいスライスに再結合し、最後に新しいスライスを返します。

1.2 copy 関数を使用してスライス内の要素を削除する

copy 関数を使用してスライス内の要素を削除することも比較的簡単です。具体的な方法は、削除対象要素以降の要素を前方に移動して、削除対象要素を覆うようにすることである。以下はサンプル コードです。

// 删除slice中的某个元素
func removeSliceElement(slice []int, index int) []int {
    copy(slice[index:], slice[index+1:])
    return slice[:len(slice)-1]
}
ログイン後にコピー

この例では、removeSliceElement という名前の関数も定義されています。この関数は、[]int 型のスライスと削除される要素のインデックス値を受け取ります。関数の戻り値は、削除後の新しいスライスです。

具体的な手順は、コピー関数を使用して、削除する要素の後の要素を前方に移動し、削除する要素を上書きすることです。最後に、新しいスライスの長さから 1 を引いて上書きされた要素を削除し、新しいスライスを返します。

  1. Golang でのマップの削除

Golang では、マップ内のキーと値のペアを削除する方法が 2 つあります。delete 関数を使用するか、ループを使用します。削除します。以下にこれら 2 つの方法を紹介します。

2.1 delete 関数を使用してマップ内のキーと値のペアを削除する

delete 関数を使用してマップ内のキーと値のペアを削除するのは比較的簡単です。具体的な方法は次のとおりです。 key を使用して、対応するキーと値のペアを削除します。サンプル コードは次のとおりです:

// 删除map中的某个键值对
func removeMapValue(m map[string]int, key string) {
    delete(m, key)
}
ログイン後にコピー

この例では、removeMapValue という関数を定義します。この関数は、map[string]int 型のマップと削除するキーと値のペアのキーを受け取ります。この関数には戻り値がなく、削除操作は元のマップに対して直接実行されます。

具体的な手順は、削除するキーと値のペアのキーを delete 関数を通じて渡し、削除操作を実行することです。

2.2 ループ削除を使用してマップ内のキーと値のペアを削除する

ループ削除を使用してマップ内のキーと値のペアを削除するのは面倒ですが、場合によっては、ループ削除を使用する方が柔軟性が高くなります。削除機能。具体的な方法は、マップをループし、削除するキーと値のペアをフィルターで除外してから削除することです。以下はサンプル コードです。

// 删除map中的某个键值对
func removeMapValue(m map[string]int, key string) {
    for k, v := range m {
        if k == key {
            delete(m, k)
            break
        }
    }
}
ログイン後にコピー

この例では、removeMapValue という名前の関数も定義されています。この関数は、map[string]int 型のマップと削除するキーと値のペアのキーを受け取ります。 。この関数には戻り値がなく、削除操作は元のマップに対して直接実行されます。

具体的な手順は、マップをループし、削除するキーと値のペアをフィルターで除外し、削除操作を実行することです。この例では、マップ内で削除するキーと値のペアのキーの位置を見つけて、delete 関数を使用してそのキーを削除するだけで済みます。

概要

上記は、Golang でスライスとマップを削除する 2 つの方法です。追加関数、コピー関数、削除関数、またはループ削除を使用するのはすべて一般的な方法です。これらの方法により、スライスとマップを簡単に削除できるため、プログラムがより柔軟で効率的になります。

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

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