Go 言語マップ (コレクション)
マップは、キーと値のペアの順序なしのコレクションです。 Map の最も重要な点は、キーを通じてデータを迅速に取得することです。キーはインデックスに似ており、データの値を指します。
マップはコレクションなので、配列やスライスと同じように反復処理できます。ただし、Map は順序付けされておらず、返される順序を決定できません。これは、Map がハッシュ テーブルを使用して実装されているためです。
マップを定義する
組み込み関数 make を使用するか、map キーワードを使用してマップを定義できます:
/* 声明变量,默认 map 是 nil */ var map_variable map[key_data_type]value_data_type /* 使用 make 函数 */ map_variable = make(map[key_data_type]value_data_type)
マップを初期化しない場合、nil マップが作成されます。 nil マップはキーと値のペアの保存には使用できません
例
次の例は、マップの作成と使用を示しています:
package main import "fmt" func main() { var countryCapitalMap map[string]string /* 创建集合 */ countryCapitalMap = make(map[string]string) /* map 插入 key-value 对,各个国家对应的首都 */ countryCapitalMap["France"] = "Paris" countryCapitalMap["Italy"] = "Rome" countryCapitalMap["Japan"] = "Tokyo" countryCapitalMap["India"] = "New Delhi" /* 使用 key 输出 map 值 */ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } /* 查看元素在集合中是否存在 */ captial, ok := countryCapitalMap["United States"] /* 如果 ok 是 true, 则存在,否则不存在 */ if(ok){ fmt.Println("Capital of United States is", captial) }else { fmt.Println("Capital of United States is not present") } }
上記の例の実行結果は次のとおりです:
Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo Capital of India is New Delhi Capital of United States is not present
delete() function
delete () 関数はコレクション要素を削除するために使用されます。パラメータはマップとそれに対応するキーです。例は次のとおりです:
package main import "fmt" func main() { /* 创建 map */ countryCapitalMap := map[string] string {"France":"Paris","Italy":"Rome","Japan":"Tokyo","India":"New Delhi"} fmt.Println("原始 map") /* 打印 map */ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } /* 删除元素 */ delete(countryCapitalMap,"France"); fmt.Println("Entry for France is deleted") fmt.Println("删除元素后 map") /* 打印 map */ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } }
上記の例を実行した結果は次のとおりです:
原始 map Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo Capital of India is New Delhi Entry for France is deleted 删除元素后 map Capital of Italy is Rome Capital of Japan is Tokyo Capital of India is New Delhi