Golang——map集合初始化、键值操作、map作为函数参数的使用
生活随笔
收集整理的這篇文章主要介紹了
Golang——map集合初始化、键值操作、map作为函数参数的使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- map是一種無(wú)序的鍵值對(duì)集合,鍵是不允許重復(fù)的,map是通過(guò)hash實(shí)現(xiàn)的
- map最重要的一點(diǎn)是通過(guò)key來(lái)快速檢索數(shù)據(jù),key類(lèi)似于索引,指向數(shù)據(jù)的值
- 引用類(lèi)型不能作為key
map的創(chuàng)建:
格式1:
var map名稱(chēng) map[key的類(lèi)型]value的類(lèi)型格式2:
map名稱(chēng) := map[key的類(lèi)型]value的類(lèi)型{}格式3:
map名稱(chēng) := make(map[key的類(lèi)型]value的類(lèi)型)演示:
func main() {var m map[int]stringm1 := map[int]string{}m2 := make(map[int]string)fmt.Println(m)fmt.Println(m1)fmt.Println(m2) }map的初始化:
格式1:
var map名稱(chēng) map[key的類(lèi)型]value的類(lèi)型 = map[key的類(lèi)型]value的類(lèi)型{key:value,key:value}格式2:
map名稱(chēng) := map[key的類(lèi)型]value的類(lèi)型{key:value,key:value}格式3:
map名稱(chēng) := make(map[key的類(lèi)型]value的類(lèi)型) map名稱(chēng) [key] = value演示:
func main() {//var m map[string]string = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}// 可以簡(jiǎn)寫(xiě)var m = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}m1 := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}m2 := make(map[string]string)m2["打野"] = "露娜"m2["中路"] = "不知火舞"m2["射手"] = "馬可波羅"fmt.Println(m)fmt.Println(m1)fmt.Println(m2) }map鍵值操作:
| map名稱(chēng)[鍵] | 通過(guò)key獲取值 |
| value,ok := map[key] | 判斷key是否存在 |
| delete(map名稱(chēng),鍵) | 通過(guò)key刪除value |
演示:
func main() {m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}fmt.Println(m["打野"])value, key := m["打野2"]if key { fmt.Println(value)} else {fmt.Println("key不存在")}for key, value := range m {fmt.Println(key, value)}delete(m, "打野")fmt.Println(m) }map作為函數(shù)參數(shù):
在函數(shù)中修改map的值,會(huì)影響到原來(lái)的map
創(chuàng)建格式格式:
func 函數(shù)名 (map){函數(shù)體 }調(diào)用格式:
函數(shù)名(map)演示:
func main() {m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}mapDemo(m)fmt.Println("修改后main中打印:", m) }func mapDemo(m map[string]string) {fmt.Println("修改前:", m)delete(m, "打野")fmt.Println("修改后mapDemo中打印:", m) }輸出:
修改前: map[中路:不知火舞 射手:馬可波羅 打野:露娜] 修改后mapDemo中打印: map[中路:不知火舞 射手:馬可波羅] 修改后main中打印: map[中路:不知火舞 射手:馬可波羅]統(tǒng)計(jì)字母出現(xiàn)的次數(shù):
思路:
定義map,鍵盤(pán)錄入的字母作為map的key,統(tǒng)計(jì)的次數(shù)作為map的value,循環(huán)遍歷
func mapDemo() {fmt.Println("請(qǐng)輸入要統(tǒng)計(jì)的字母:")// 定義統(tǒng)計(jì)次數(shù)的變量var str stringfmt.Scan(&str)m := make(map[byte]int)for i := 0; i < len(str); i++ {// 定義變量s作為map的keys := str[i]// 通過(guò)key獲取值 int類(lèi)型初始值為0,相同則+1作為新的valuem[s] += 1}fmt.Println("統(tǒng)計(jì)的字符次數(shù)為:\n\n")// 遍歷for key, value := range m {fmt.Printf("%c:%d\n", key, value)} }總結(jié)
以上是生活随笔為你收集整理的Golang——map集合初始化、键值操作、map作为函数参数的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android个人微信支付,Androi
- 下一篇: 如何更改服务器上的数据库文件夹,如何设置