本文介绍: map是一种无须的基于keyvalue数据结构,Go语言中的map引用类型,必须初始化才能使用Go语言map定义语法如下map[KeyType]ValueType其中KeyType表示键的类型ValueType表示对应的值的类型map类型变量默认初始值nil需要使用make()函数分配内存其中cap表示map的容量,该参数虽然不是必须的注意:获取map的容量不能使用capcap返回的是数组切片分配空间大小,根本不能用于map

一、map介绍

1、map说明

2、定义map

1、map定义:方法1
package main

import "fmt"

func main() {
    scoreMap := make(map[string]int,8)
    scoreMap["snail"]=100
    scoreMap["pupu"]=90
    
    fmt.PrintIn(scoreMap)    //map[snail:100 pupu:90]
    fmt.PrintIn(scoreMap["snail"])    //100
    fmt.Printf("type of a:%Tn",scoreMap)    //type of a:map[string]int
}
2、map定义:方法2
package main
import (
	"fmt"
)
func main() {
	userInfo := map[string]string{
		"username": "IT Snail",
		"password": "123456",
	}
	fmt.Println(userInfo)   // map[password:123456 username:IT Snail]
}
3、map 嵌套 map
package main

import "fmt"

func main() {
    var mapSlice = make([]map[string]string,3)
    for index, value := range mapSlice {
        fmt.Printf("index:%d value:%vn",index,value)

    }
    fmt.PrintIn("################### after init ################")
    mapSlice[0] = make(map[string]string,10)
    mapSlice[0]["name"] = "Snail"
    mapSlice[0]["password"] = "123456"
    mapSlice[0]["address"] = "浦东新区"
    for index, value := range mapSlice {
        fmt.Printf("index:%d,value:%vn",index,value)
    }
}
/*
index:0 value:map[]
index:1 value:map[]
index:2 value:map[]
#################### after init ################
index:0 value:map[address:海淀区 name:小王子 password:123456]
index:1 value:map[]
index:2 value:map[]
 */

三、map 基本使用

1、判断某个建是否存在
package main 

import "fmt"

func main() {
    userInfo := map[string]string{
        "username":"Snail",
        "password":"123456",
    }
    v,ok := userInfo["username"]
    if ok {
        fmt.PrintIn(v)    //Snail
    }else {
        fmt.PrintIn("map中没有元素")
    }
}
2、delete()函数
package main

import "fmt"

func main() {
    scoreMap :=make(map[string]int)
    ScoreMap["pupu"]=90
    ScoreMap["Snail"]=100
    scoreMap["白河车"]= 70
    delete(scoreMap,"Snail")    //将 Snail:100 从 map 中删除
    for k,v := range ScoreMap{
        fmt.PrintIn(k,v)
    }
}
/*
pupu 90
白河车 70
*/

四、map 遍历

1、遍历 key 和 value
package main

import "fmt"

func main() {
    scoreMap :=make(map[string]int)
    ScoreMap["pupu"]=90
    ScoreMap["Snail"]=100
    scoreMap["白河车"]= 70
    for k,v := range ScoreMap{
        fmt.PrintIn(k,v)
    }
}
/*
pupu 90
Snail 100
白河车 70
*/
2、只遍历 key
package main

import "fmt"

func main() {
    scoreMap :=make(map[string]int)
    ScoreMap["pupu"]=90
    ScoreMap["Snail"]=100
    scoreMap["白河车"]= 70
    for k,v := range ScoreMap{
        fmt.PrintIn(k)
    }
}
/*
pupu 
Snail 
白河车 
*/
3、顺序遍历 map
package main
import (
	"fmt"
	"sort"
)
func main() {
	// 第一:生成字典scoreMap
	var scoreMap = make(map[string]int, 200)
	for i := 0; i < 10; i++ {
		key := fmt.Sprintf("stu%02d", i) //生成 stu 开头字符串
		scoreMap[key] = i
	}
	
	// 第二:取出 map 中的所有 key 存入切片 keys
	var keys = make([]string, 0, 200)
	for key := range scoreMap {
		keys = append(keys, key)
	}

	// 第三:对切片进行排序
	sort.Strings(keys)

	// 第四:按照排序后的 key 遍历 map
	for _, key := range keys {
		fmt.Println(key, scoreMap[key])
	}
}
/*
stu00 0
stu01 1
stu02 2
stu03 3
stu04 4
stu05 5
stu06 6
stu07 7
stu08 8
stu09 9
 */

原文地址:https://blog.csdn.net/MrWangisgoodboy/article/details/134701388

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26366.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注