Go语言基础之map

1. map的概念

map是一个无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化.map是Go语言中提供映射关系容器,其内部使用散列表(Hash)实现。

2. map的定义

map[KeyType]ValueType
KeyType:表示键的类型
ValueType:表示键对应的值得类型

package main

import "fmt"

func main(){
	//make(map[string]int,cap),使用make函数创建map,cap表示map的容量
	scopeMap := make(map[string]int, 10)
	scopeMap["小付"] = 90
	scopeMap["小夏"] = 80
	scopeMap["小张"] = 60

	fmt.Println(scopeMap)
	fmt.Println(scopeMap["小夏"])
	fmt.Printf("%T",scopeMap)

	//map也支持在声明时填充元素
	username := map[string]string {
		"username":"admin"
		"password":"123"
	}
	
	fmt.Printfln(username)
}

Go语言基础之map_第1张图片

3. map的遍历

package main

import "fmt"

func main() {
	scopeMap := map[string]int{
		"张三": 90,
		"李四": 60,
		"王五": 75,
	}

	for _, val := range scopeMap {
		fmt.Println(val)
	}
}

Go语言基础之map_第2张图片

4. 判断键值是否存在

package main

import "fmt"

func main() {
	scopeMap := make(map[string]int)
	scopeMap["张三"] = 75
	scopeMap["李四"] = 55
	scopeMap["王五"] = 100

	value, ok := scopeMap["张三"]
	if ok {
		fmt.Println(value)
	} else {
		fmt.Println("无此人")
	}

	val, yes := scopeMap["李六"]
	if yes {
		fmt.Println(val)
	} else {
		fmt.Println("无此人")
	}
}

Go语言基础之map_第3张图片

5.删除map中的键值对

package main

import "fmt"

func main() {
	scopeMap := make(map[string]int)
	
	scopeMap["张三"] = 75
	scopeMap["李四"] = 55
	scopeMap["王五"] = 100

	fmt.Println(scopeMap)
	
	delete(scopeMap, "李四")//删除map中键值为"李四"的键值对
	fmt.Println(scopeMap)
}

Go语言基础之map_第4张图片

你可能感兴趣的:(Golang)