1. 程式人生 > >Go 語言Map(集合)

Go 語言Map(集合)

Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。

Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因為 Map 是使用 hash 表來實現的。

定義 Map

可以使用內建函式 make 也可以使用 map 關鍵字來定義 Map:

/* 宣告變數,預設 map 是 nil */var map_variable map[key_data_type]value_data_type

/* 使用 make 函式 */
map_variable := make(map
[key_data_type]value_data_type)

如果不初始化 map,那麼就會建立一個 nil map。nil map 不能用來存放鍵值對

例項

下面例項演示了建立和使用map:

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 FranceisParisCapital of ItalyisRomeCapital of JapanisTokyoCapital of IndiaisNewDelhiCapital of UnitedStatesisnot present

delete() 函式

delete() 函式用於刪除集合的元素, 引數為 map 和其對應的 key。例項如下:

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 FranceisParisCapital of ItalyisRomeCapital of JapanisTokyoCapital of IndiaisNewDelhiEntryforFranceis deleted
刪除元素後 map
Capital of ItalyisRomeCapital of JapanisTokyoCapital of IndiaisNewDelhi

相關推薦

Go 語言Map(集合)

Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。 Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因為 Map 是使用 hash 表

Go語言基礎(九)—— Go語言結構體、Go語言切片(Slice)、range遍歷、Go語言Map集合

Go語言結構體 Go 語言中陣列可以儲存同一型別的資料,但在結構體中我們可以為不同項定義不同的資料型別。 結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。  結構體表示一項記錄,比如儲存圖書館的書籍記錄,每本書有以下屬性: Title :標題&nbs

go語言---map

field 傳引用 塊存儲 === 聲明 print ann 維護 ava go語言---map https://blog.csdn.net/cyk2396/article/details/78890185 一.map的用法: type PersonDB struct {

15Java語言Map集合總結和JDK的中對集合新增的優化以及debug除錯

Map集合 1.Map集合的特點: 1).內部採用鍵值對的方式儲存,通過鍵獲取對應的值 2).鍵值是唯一的,可以接收一次null 3).鍵和值可以是任何物件 4).由於鍵值得唯一、不重複,需要重寫equals()和hashCode()方法 2.Map集合的子類:

Go語言程式設計——集合型別

一、值、指標和引用型別。 值在傳遞給函式或者方法的之後會被覆蓋一次。這對於數字型別或者布林型別來說是非常廉價的,因為這樣的位元組只佔1~8個位元組。 按值傳遞字串也是非常廉價的,因為Go語言中字串是不可變的,Go語言編譯器會將傳遞過程進行安全優化,因此無論傳遞字

Go語言map的併發操作

先單獨說一下map,在Go語言中,map與通道類似,都需要先用make函式進行初始化,之後才可以賦值,不過map沒有長度的限制,所以在使用make函式初始化map時,make函式的第二個引數不用寫,寫不寫沒有區別。 package main import "fmt" func mai

go語言 map轉成struct結構(呼叫第三方包)

package main import (     "encoding/json"     "fmt"     "github.com/goinggo/mapstructure" ) //把請求包定義成一個結構體 type Requestbody struct {     req string } //以指標

java語言 Map集合 的常用的最最基本的功能,其他方法還在學習中,有待更新......

1,新增功能 2,刪除功能 3,判斷功能 . . . package map; import java.util.Collection; import java.util.HashMap; import java.util.Map; publ

go語言map按照key,value進行排序

1. go語言的map是無序的,多次遍歷map的結果可能是不同的 舉例如下: package main import ( "fmt" ) // GetMap 得到map func GetMap() (result map[int]uint32) { result =

Go語言Map詳解

map(字典、雜湊表、對映)是一種使用頻率很高的資料結構,將其作為語言的內建型別,從執行時層面進行優化,可獲得更好的效能。 一、內部實現 map的原始碼結構為: // A header for a Go map. type hmap struct

go語言map集合

Map 是一種無序的鍵值對的集合。 Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。 Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無

go語言筆記——map map 默認是無序的,不管是按照 key 還是按照 value 默認都不排序

pcr 錯誤 固定 pre text 輸出結果 示例 operation frequency 示例 8.1 make_maps.go package main import "fmt" func main() { var mapLit map[string]int

Go語言map練習

mapmap理論基礎知識 類似其他語言中的哈希表或者字典,以key-value形式存儲數據 key必須是支持== 或者 != 比較運算的類型,不可以是函數,map或者slice map查找比線性搜索快很多,但比使用索引訪問數據的類型慢100倍 map使用make()創建,支持:=這種簡寫方式 make(

Go語言高級特性總結——Struct、Map與JSON之間的轉化

err bsp make 特性 clas 高級 string comm tag Struct與Map之間互相轉換 1 // Struct2Map convert struct to map 2 func Struct2Map(st interface{}) map[s

Go語言-切片和map

package pri code [] print UNC AR make 運行 實例 package main import ( "fmt" ) func main() { arr := make([]i

go語言學習--map的並發

程序 decision 通過 import 結構 link mic imu probably go提供了一種叫map的數據結構,可以翻譯成映射,對應於其他語言的字典、哈希表。借助map,可以定義一個鍵和值,然後可以從map中獲取、設置和刪除這個值,尤其適合數據查找的場景。

Go語言map在goroutine通信中的使用

cannot .net html goroutin field tail 問題 tar ocs 簡介 本篇文章的主要內容是解決go語言map在使用中遇到的兩個問題 一、cannot assign to struct field https://haobook.readthe

Go語言中對映表map的使用

1 概述 Go語言中的鍵值對(key->value)集合,稱之為對映map。對映map是變長型別,定義時不需要指定長度。對映map是無序的,遍歷是的順序不可期,原因是底層由hash表實現。邏輯結構表示為: 2 建立語法 var m = map[key_type]value_type{k

Go語言學習筆記(三) 集合型別

陣列 陣列中包含的每個資料被稱為陣列元素(element),一個數組包含的元素個數被稱為陣列的長度。 [32]byte // 長度為32的陣列,每個元素為一個位元組 [2*N] struct { x, y int32 } // 複雜型別陣列 [1000]*float64 // 指標陣列 [3

go語言基礎資料結構學習 ---- 字典(map)

go語言基礎資料結構學習–> 字典(map) go 語言中的字典和python 中的字典特性差不多 相同: 鍵值對, 無序集合, 每個鍵都是唯一的, 對一個鍵多次賦值會更新當前鍵的值; 不同: go語言的字典裡面的型別是定好的, 不可變更, python可以隨