golang のマップは、キーと値のペアを別の値にマッピングできる非常に便利なデータ構造で、高速な検索と保存が可能です。通常、マップに要素を追加しますが、マップから要素を削除する必要がある場合もあります。この記事では、golangでマップ内の要素を削除する方法を紹介します。
単一要素を削除する方法は非常に簡単で、delete() 関数を使用するだけです。例:
package main import "fmt" func main() { // 定义一个字符串到整数的map m := map[string]int{"a": 1, "b": 2, "c": 3} // 删除key为a的元素 delete(m, "a") // 输出map中的元素 fmt.Println(m) // 输出:map[b:2 c:3] }
最初に文字列から整数へのマップを定義し、次に delete() 関数を使用してキー a を持つ要素を削除します。最後にマップ内の要素が出力され、要素 a が削除されていることがわかります。
マップ内に存在しない要素を削除する場合、delete() 関数はエラーを生成せず、何も実行しません。マップ上のあらゆるもの、あらゆる変更。例:
package main import "fmt" func main() { // 定义一个字符串到整数的map m := map[string]int{"a": 1, "b": 2, "c": 3} // 删除key为d的元素 delete(m, "d") // 输出map中的元素 fmt.Println(m) // 输出:map[a:1 b:2 c:3] }
上の例では、マップに存在しないキー d の要素を削除しましたが、プログラムはエラーを報告せず、マップに変更を加えませんでした。
すべての要素を削除するには、for ループを使用してマップを走査し、各要素を順番に削除します。例:
package main import "fmt" func main() { // 定义一个字符串到整数的map m := map[string]int{"a": 1, "b": 2, "c": 3} // 删除所有元素 for k := range m { delete(m, k) } // 输出map中的元素 fmt.Println(m) // 输出:map[] }
上の例では、まず文字列から整数へのマップを定義し、次に for ループを使用してマップを走査し、各要素を順番に削除します。最後に、マップ内の要素が出力され、マップが空であることがわかります。
マップ内の要素を削除する場合、for i, val := range m などのループは使用できないことに注意してください。このループはマップの要素を 2 回走査し、要素を変更すると、マップの長さと走査カウンタ i が変化し、プログラムがクラッシュする可能性があります。したがって、マップを走査するには for k := range m のようなループのみを使用できます。
概要:
golang でマップ内の要素を削除するには、delete() 関数を使用して単一の要素を削除するか、for ループを使用してマップを走査することができます。次に、各要素を順番に削除します。マップ内の要素を削除する場合、for k := range m などのループを使用してマップを走査する必要があることに注意してください。ただし、for i, val := range m などのループは使用できません。そうでない場合、プログラムはエラーが発生する可能性があります。
以上がgolang マップの要素の削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。