Introducción al lenguaje Go 17 - el uso del mapa | Mes del tema Go

Construcción de mapa

El valor inicial del tipo de referencia es nulo, se puede usar un segmento vacío, pero no se puede usar un mapa vacío

estructura gramatical:

1. Crea un mapa

    var map1 map[key类型]value类型
    nil map,无法直接使用
    
    var map2=make(map[key类型])value类型
    
    var map3=map[key类型]value类型{key:value,key:value....}
    
    
复制代码
package main

import "fmt"

func main() {
	/*
	map:映射,是一种专门用于存储键值对的集合,属于引用类型

	存储特点:
		A.存储的是无序的键值对
		B.键不能重复,并且和value值一一对应的
			map中key不能重复。如果重复,新的value会覆盖原来的。
	语法结构:
		1.创建map
	 */
	//创建map
	var map1 map[int]string
	var map2=make(map[int]string)
	var map3=map[string]int{"Go":98,"Python":87,"java":79,"Html":93}
	fmt.Println(map1)
	fmt.Println(map2)
	fmt.Println(map3)

	fmt.Println(map1==nil)
	fmt.Println(map2==nil)
	fmt.Println(map3 ==nil)

	if map1==nil {
		map1=make(map[int]string)
		fmt.Println(map1==nil)
	}
}

复制代码

imagen.png

uso del mapa

package main

import "fmt"

func main() {
	/*
	map:映射,是一种专门用于存储键值对的集合,属于引用类型

	存储特点:
		A.存储的是无序的键值对
		B.键不能重复,并且和value值一一对应的
			map中key不能重复。如果重复,新的value会覆盖原来的。
	语法结构:
	    1. 创建map
	        var map1 map[key类型]value类型
	        nil map,无法直接使用

	        var map2=make(map[key类型])value类型

	        var map3=map[key类型]value类型{key:value,key:value....}
	 */
	//1.创建map
	var map1 map[int]string
	var map2=make(map[int]string)
	var map3=map[string]int{"Go":98,"Python":87,"java":79,"Html":93}
	fmt.Println(map1)
	fmt.Println(map2)
	fmt.Println(map3)

	fmt.Println(map1==nil)
	fmt.Println(map2==nil)
	fmt.Println(map3 ==nil)

	//2.nil map不能直接使用
	if map1==nil {
		map1=make(map[int]string)
		fmt.Println(map1==nil)
	}

	//3.存储键值到map中
	map1[1]="hello"
	map1[2]="world"
	map1[3]="mm"
	map1[4]="fasd"
	map1[5]="ffff"

	//4.获取数据
	//根据key获取对应value,如果key不存在,获取value类型的默认值
	fmt.Println(map1)
	fmt.Println(map1[4])
	fmt.Println(map1[40])

	//返回两个值,v1为数据,OK判断key值是否存在
	v1,ok:=map1[40]
	if ok {
		fmt.Println("对应数值为:",v1)
	}else {
		fmt.Println("key不存在")
	}

	//5.修改数据
	fmt.Println(map1)
	map1[3]="如花"
	fmt.Println(map1)

	//6.删除数据
	delete(map1,3)
	fmt.Println(map1)
	delete(map1,30)
	fmt.Println(map1)

	//7.map长度
	fmt.Println(len(map1))
}

复制代码

imagen.png

Supongo que te gusta

Origin juejin.im/post/6950507528074002440
Recomendado
Clasificación