日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Golang——map集合初始化、键值操作、map作为函数参数的使用

發(fā)布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Golang——map集合初始化、键值操作、map作为函数参数的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • map是一種無序的鍵值對集合,鍵是不允許重復的,map是通過hash實現(xiàn)的
  • map最重要的一點是通過key來快速檢索數(shù)據(jù),key類似于索引,指向數(shù)據(jù)的值
  • 引用類型不能作為key

map的創(chuàng)建:

格式1:

var map名稱 map[key的類型]value的類型

格式2:

map名稱 := map[key的類型]value的類型{}

格式3:

map名稱 := make(map[key的類型]value的類型)

演示:

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名稱 map[key的類型]value的類型 = map[key的類型]value的類型{key:value,key:value}

格式2:

map名稱 := map[key的類型]value的類型{key:value,key:value}

格式3:

map名稱 := make(map[key的類型]value的類型) map名稱 [key] = value

演示:

func main() {//var m map[string]string = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "馬可波羅"}// 可以簡寫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名稱[鍵]通過key獲取值
value,ok := map[key]判斷key是否存在
delete(map名稱,鍵)通過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的值,會影響到原來的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)計字母出現(xiàn)的次數(shù):

思路:

定義map,鍵盤錄入的字母作為map的key,統(tǒng)計的次數(shù)作為map的value,循環(huán)遍歷

func mapDemo() {fmt.Println("請輸入要統(tǒng)計的字母:")// 定義統(tǒng)計次數(shù)的變量var str stringfmt.Scan(&str)m := make(map[byte]int)for i := 0; i < len(str); i++ {// 定義變量s作為map的keys := str[i]// 通過key獲取值 int類型初始值為0,相同則+1作為新的valuem[s] += 1}fmt.Println("統(tǒng)計的字符次數(shù)為:\n\n")// 遍歷for key, value := range m {fmt.Printf("%c:%d\n", key, value)} }

總結(jié)

以上是生活随笔為你收集整理的Golang——map集合初始化、键值操作、map作为函数参数的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。