go語言中的map

2021-09-08 04:35:46 字數 1433 閱讀 3309

package main;

import (

"fmt"

"sort"

)func main() ;

//同上

var b map[int]string = make(map[int]string);

//通過make建立map

var c = make(map[int]string);

//簡化寫法

d := make(map[int]string);

//設定值

d[0] = "hello";

d[1] = "world";

//刪除某個鍵值,指定map和key

delete(d, 1);

//map的值又是乙個map

var e = make(map[int]map[int]string);

//這裡還需要make,上面的make只是初始化了最外層的map

e[0] = make(map[int]string);

e[0][0] = "123";

e[0][1] = "456";

e[1] = make(map[int]string);

e[1][0] = "789";

e[1][1] = "101";

//判斷map是否有值

if _, ok := e[2][2]; !ok

//迴圈map,k表示key,v是值

for k, v := range e

//建立乙個長度為5,值為map[int]string的slice

var f = make(map[int]string, 5);

//迴圈的make建立map

for ix := range f

var g = map[int]string;

//map是無序的,每次迴圈輸出的順序都不一樣

for k, v := range g

//這裡可以通過slice對map的key進行排序,然後通過slice中的key操作map

var h = make(int, len(g));

ix := 0;

for k, _ := range g

//對slice排序

sort.ints(h);

fmt.println(h);

//通過slice中的key操作map

for _, v := range h

//把g進行鍵值互換

var i = make(map[string]int, len(g));

for k, v := range g

fmt.println(i);

fmt.println(a, b, c, d, e);

fmt.println(d[0], d[1]);

fmt.println(f);

}

Go語言中的 Array, Slice和 Map

曾經學習python的時候,記得書上說 dict 是python的 horsepower 動力 然後,slice 和 map 又何嘗不是golang的 workhorse 呢?陣列的宣告 這裡就是定義,給資料儲存分配了空間 var arrayname arraysize datatype 如果陣列定...

go語言中map的實現原理

map的迭代順序是不確定的,並且不同的雜湊函式實現可能導致不同的遍歷順序。在實踐中,遍歷的順序是隨機的,每一次遍歷的順序都不相同。這是故意的,每次都使用隨機的遍歷順序可以強制要求程式不會依賴具體的雜湊函式實現。待續。map的key必須可以比較 func不可以作為key,func 型別是不可比較的型別...

Go語言中對映表map的使用

go語言中的鍵值對 key value 集合,稱之為對映map。對映map是變長型別,定義時不需要指定長度。對映map是無序的,遍歷是的順序不可期,原因是底層由hash表實現。邏輯結構表示為 var m map key type value type var m make map key type ...