Golang のマップは、キーを値に関連付けることができる、非常に一般的に使用されるデータ構造です。マップは、記事内で単語が出現する回数を数えたり、学生のテストの点数を保存したりするなど、さまざまな状況で非常に役立ちます。
この記事では、Golang での Map について、Map とは何か、Map の特徴、Map の使い方、Map の横断などをわかりやすく紹介し、徐々に紹介していきます。学んだ知識を定着させるために、いくつかのコード例を作成します。
1. マップとは何ですか?
マップは、キーを値にマップするデータ構造です。各キーは 1 回のみ出現でき、対応する値は繰り返し出現できます。 Golang では、Map の実装はハッシュ テーブルに似ており、挿入、削除、検索操作を迅速に実行できます。
Map の宣言形式は次のとおりです:
map[KeyType]ValueType
ここで、KeyType と ValueType はそれぞれキーと値のタイプを表します。以下に例を示します。
var students map[string]int
この例ではマップを定義します。キーのタイプは文字列、値のタイプは int です。初期化前、このマップは nil であり、使用できません。
2. マップの特性
a. 次の 2 つのフィールドを持つ構造体:
type Key struct { x, y int }
b. 配列型、および要素type は、「==」および「!=」演算子をサポートするタイプです:
type Key [2]int
c. インターフェイスのタイプ、および動的値は nil ではありません:
type Key interface { }
students := make(map[string]int)
students["Tom"] = 90 students["Jerry"] = 80 students["Mary"] = 95
必要な場合Map 要素を変更するには、同じキーを使用するだけで済みます。新しいキーと値のペアを追加する場合は、キーの位置に値を書き込むだけです。
delete(students, "Jerry")
削除関数の最初のパラメータはマップで、2 番目のパラメータは削除するキーです。
score, ok := students["Tom"] if ok { fmt.Printf("Tom's score is %d. ", score) } else { fmt.Println("Tom not found.") }
3. マップの使用方法
以下の具体的な例を見てみましょう。文字列があり、その中の各単語の出現数を数えたいとします。
package main import ( "fmt" "strings" ) func main() { str := "Go is a programming language.Golang is a updated version of the Go language. It was created by Google." // 将字符串按照空格分隔成切片 words := strings.Fields(str) // 创建一个空Map,用于统计单词出现次数 count := make(map[string]int) // 统计单词出现次数 for _, word := range words { count[word]++ } // 打印结果 for word, cnt := range count { fmt.Printf("%s: %d ", word, cnt) } }
この例では、まず strings パッケージの Fields 関数を使用して文字列を文字列スライスに分割し、次に空のマップを作成します。次に、for ループを使用してスライス内の各単語をキーとして使用し、対応する値に 1 を加えて、最後にマップを走査して各単語が出現する回数を出力します。
4. マップの走査
Golang では、for ループを使用して Map を走査できます。マップを走査するときに返されるキーと値のペアには順序がありません。
for key := range students { fmt.Println(key) }
for _, value := range students { fmt.Println(value) }
for key, value := range students { fmt.Printf("key: %s, value: %d ", key, value) }
上記の走査メソッドは、文字列キーを持つマップであっても、他のタイプのキーを持つマップであっても、任意のマップを走査するために使用できます。 。
概要
この記事では、主に Golang における Map について、定義、特徴、使い方、トラバースなどを含めて紹介します。実際の開発では、Map は非常に一般的に使用されるデータ構造であり、Golang 開発者が Map の使用法を習得することは非常に必要です。
以上がGolang の Map データ構造を深く分析するための簡潔なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。