수정 방법: 1. "map["key"]=value" 문을 사용하여 요소를 추가하거나 업데이트합니다. "key"가 존재하지 않으면 요소를 추가합니다. 사용 delete() 함수는 맵에서 지정된 키-값 쌍을 삭제합니다. 구문은 "delete(map, keyname)"입니다. 3. 맵의 모든 요소를 지울 수 있는 새 맵 객체를 다시 만듭니다. 구문은 다음과 같습니다. "var mapname map[keytype] valuetype"입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Go 언어에서 맵은 요소 쌍(pair)의 정렬되지 않은 모음인 특별한 데이터 구조입니다. 쌍은 키(인덱스)와 값(값)에 해당하므로 이 구조를 연관 배열 또는 사전이라고도 합니다. , 이는 키가 주어지면 해당 값을 빠르게 찾을 수 있는 이상적인 구조입니다.
map 이 데이터 구조는 다른 프로그래밍 언어에서 사전(Python), 해시, HashTable 등으로도 알려져 있습니다.
【1】Map은 키-값 쌍을 연결하는 Go 언어에 내장된 유형으로 키 키를 통해 해당 값을 얻을 수 있습니다. 다른 언어의 컬렉션과 유사
【2】기본 구문
var map变量名 map[keytype]valuetype
PS: 키 및 값 유형: 부울, 숫자, 문자열, 포인터, 채널 또는 이전 유형만 포함하는 인터페이스 또는 구조일 수도 있습니다. . 배열
PS: 키는 일반적으로 int, 문자열 유형이고 값은 일반적으로 숫자(정수, 부동 소수점 수), 문자열, 맵, 구조체입니다.
PS: 키: 슬라이스, 맵, 함수는 허용되지 않습니다
[ 3] 코드:
맵의 특징:
(1) 맵 수집은 사용하기 전에 이루어져야 합니다. (2) 맵의 키-값은 순서가 없습니다.
(3) 키가 반복되면 후자가 될 수 없습니다. 값은 이전 값을 대체합니다
(4) 값은 반복될 수 있습니다
package main import "fmt" func main(){ //定义map变量: var a map[int]string //只声明map内存是没有分配空间 //必须通过make函数进行初始化,才会分配空间: a = make(map[int]string,10) //map可以存放10个键值对 //将键值对存入map中: a[20095452] = "张三" a[20095387] = "李四" a[20097291] = "王五" a[20095387] = "朱六" a[20096699] = "张三" //输出集合 fmt.Println(a) }
package main import "fmt" func main(){ //方式1: //定义map变量: var a map[int]string //只声明map内存是没有分配空间 //必须通过make函数进行初始化,才会分配空间: a = make(map[int]string,10) //map可以存放10个键值对 //将键值对存入map中: a[20095452] = "张三" a[20095387] = "李四" //输出集合 fmt.Println(a) //方式2: b := make(map[int]string) b[20095452] = "张三" b[20095387] = "李四" fmt.Println(b) //方式3: c := map[int]string{ 20095452 : "张三", 20098765 : "李四", } c[20095387] = "王五" fmt.Println(c) }
map[“key”]= value
——》 如果key还没有,就是增加,如果key存在就是修改。
【2】删除操作:
delete(map,“key”)
, delete是一个内置函数,如果key存在,就删除该key-value,如果k的y不存在,不操作,但是也不会报错
【3】清空操作:
(1)如果我们要删除map的所有key ,没有一个专门的方法一次删除,可以遍历一下key,逐个删除
(2)或者map = make(…)
【2】삭제 작업:
delete(map, "key")
, 삭제는 내장 함수입니다. 키가 있으면 키-값을 삭제합니다. 존재하지 않습니다. 작업은 없지만 오류는 보고되지 않습니다
【3】Clear 작업:
(1) 맵의 키를 모두 삭제하고 싶다면 한번에 삭제할 수 있는 특별한 방법은 없습니다. 키를 하나씩 삭제하고
(2) 또는 map = make(...)
, 새 키를 만들고 원본을 쓰레기로 만들고 gc
에 의해 재활용되도록 하세요[4] 검색 작업: value, bool = map[key]value는 반환된 값, bool은 반환할지 여부, true 또는 false
package main import "fmt" func main(){ //定义map b := make(map[int]string) //增加: b[20095452] = "张三" b[20095387] = "李四" //修改: b[20095452] = "王五" //删除: delete(b,20095387) delete(b,20089546) fmt.Println(b) //查找: value,flag := b[200] fmt.Println(value) fmt.Println(flag) }
package main import "fmt" func main(){ //定义map b := make(map[int]string) //增加: b[20095452] = "张三" b[20095387] = "李四" b[20098833] = "王五" //获取长度: fmt.Println(len(b)) //遍历: for k,v := range b { fmt.Printf("key为:%v value为%v \t",k,v) } fmt.Println("---------------------------") //加深难度: a := make(map[string]map[int]string) //赋值: a["班级1"] = make(map[int]string,3) a["班级1"][20096677] = "露露" a["班级1"][20098833] = "丽丽" a["班级1"][20097722] = "菲菲" a["班级2"] = make(map[int]string,3) a["班级2"][20089911] = "小明" a["班级2"][20085533] = "小龙" a["班级2"][20087244] = "小飞" for k1,v1:= range a { fmt.Println(k1) for k2,v2:= range v1{ fmt.Printf("学生学号为:%v 学生姓名为%v \t",k2,v2) } fmt.Println() } }
위 내용은 golang 맵을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!