寫法一:
package main
import "fmt"
func main()
輸出
97
寫法二:
package main
import "fmt"
func main() //或者這樣寫也可以
//然後賦值
m1["name"] = "go"
m1["age"] = "age"
fmt.println(m1)
fmt.println(m1["name"])
fmt.println(m1["age"])
}
輸出:
map[name:go age:age]
goage
寫法三:
初始化+賦值
package main
import "fmt"
func main() //注意該花括號不能獨自寫一行,會報錯syntax error: unexpected newline, expecting comma or }
fmt.println(m1)
fmt.println(m1["name"])
fmt.println(m1["age"])
}
輸出:
map[name:go age:8]
go8
遍歷map方法一
package main
import "fmt"
func main()
for k := range m1
}
輸出:
fine的值為language
one的值為go
two的值為is
three的值為a
four的值為programing
遍歷map方法二
package main
import "fmt"
func main()
for k, v := range m1
}
輸出:
//因為是無序的,每次執行輸出的結果都不一樣
鍵名為:fine, 鍵值為:language
鍵名為:one, 鍵值為:go
鍵名為:two, 鍵值為:is
鍵名為:three, 鍵值為:a
鍵名為:four, 鍵值為:programing
鍵名為:two, 鍵值為:is
鍵名為:three, 鍵值為:a
鍵名為:four, 鍵值為:programing
鍵名為:fine, 鍵值為:language
鍵名為:one, 鍵值為:go
查詢鍵值是否存在
package main
import "fmt"
func main()
//檢視元素是否在map中,變數 is_exist 會返回true或者false,當查詢的key在map中則返回true
if _, is_exist := m1["six"]; is_exist else
}
輸出:
m1["six"]不存在m1裡。
delete函式的使用
package main
import "fmt"
func main()
a := m1["one"]
delete(m1, "one") //delete() 函式用於刪除集合的元素, 引數為 map 和其對應的 key
fmt.println(a)
fmt.println(m1) //成功刪除m1["one"]
}
輸出:
go
map[two:is three:a four:programing fine:language]
多返回值
package main
import "fmt"
func main()
輸出:
true 1111
package main
import "fmt"
func main()
輸出:
false
多返回值的使用
package main
import "fmt"
func main()
m1[2][1] = "good"
a, ok = m1[2][1]
fmt.println(ok, a)
}
輸出:
false
true good
map的迭代
package main
import "fmt"
func main()
//所以這裡打出來的還是空的map
fmt.println(sm)
}
輸出:
map[1:go]
map[1:go]
map[1:go]
map[1:go]
map[1:go]
[map map map map map]
package main
import "fmt"
func main()
//sm值已經改變了
fmt.println(sm)
}
輸出:
map[1:go]
map[1:go]
map[1:go]
map[1:go]
map[1:go]
[map[1:go] map[1:go] map[1:go] map[1:go] map[1:go]]
如何對無序的map進行間接排序?
package main
import (
"fmt"
"sort"
)func main()
s := make(int, len(m))
i := 0
//對map的排序其實就是對key的排序
for k, _ := range m
sort.ints(s) //對int型進行排序,可知slice是引用型別,因為排序完沒有返回值,而只是把s傳進去排序
fmt.println(s)
for i := range s
}
輸出:
[1 2 3 4 5]
m[" 0 "] + 鍵值為:a
m[" 1 "] + 鍵值為:b
m[" 2 "] + 鍵值為:c
m[" 3 "] + 鍵值為:d
m[" 4 "] + 鍵值為:e
go裡面如何實現key和value對調?
package main
import (
"fmt"
)func main()
m2 := map[string]int{}
fmt.println(m)
for k, v := range m
fmt.println(m2)
}
輸出:
map[1:a 2:b 3:c 4:d 5:e]
map[e:5 a:1 b:2 c:3 d:4]
map的常用用法詳解
map翻譯為對映,也是常用的stl容器。眾所周知,在定義陣列時 如 int array l00 其實是定義了乙個從int型到int型的對映,比如array 0 25 array 4 36就分別是將0對映到25 將4對映到36。乙個 double型陣列則是將int型對映到double型,例如db 0 ...
談一談C 的事件
c 中事件基於委託,要理解事件要先理解委託,如果覺得自己關於委託不是很了解可以看看我前面寫委託的文章 使用委託時,一般會出現兩種角色 廣播者 發布者 和訂閱者,這是乙個非常常見的模型 using system class program 定義 發布 委託 public delegate void p...
6 4 map的常用用法
map翻譯為對映,也是常用的stl容器,在使用map時,需要新增map標頭檔案,include。1,map的定義 mapmp,typename1是對映前的型別 鍵key typename2是對映後型別 值value 如 mapmp,是int型對映到int型,另外map的鍵和值也可以是stl容器,例如...