>  기사  >  백엔드 개발  >  golang 맵을 수정하는 방법

golang 맵을 수정하는 방법

青灯夜游
青灯夜游원래의
2022-12-26 09:53:475453검색

수정 방법: 1. "map["key"]=value" 문을 사용하여 요소를 추가하거나 업데이트합니다. "key"가 존재하지 않으면 요소를 추가합니다. 사용 delete() 함수는 맵에서 지정된 키-값 쌍을 삭제합니다. 구문은 "delete(map, keyname)"입니다. 3. 맵의 모든 요소를 ​​지울 수 있는 새 맵 객체를 다시 만듭니다. 구문은 다음과 같습니다. "var mapname map[keytype] valuetype"입니다.

golang 맵을 수정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Go 언어에서 맵은 요소 쌍(pair)의 정렬되지 않은 모음인 특별한 데이터 구조입니다. 쌍은 키(인덱스)와 값(값)에 해당하므로 이 구조를 연관 배열 또는 사전이라고도 합니다. , 이는 키가 주어지면 해당 값을 빠르게 찾을 수 있는 이상적인 구조입니다.

map 이 데이터 구조는 다른 프로그래밍 언어에서 사전(Python), 해시, HashTable 등으로도 알려져 있습니다.

map 소개

【1】Map은 키-값 쌍을 연결하는 Go 언어에 내장된 유형으로 키 키를 통해 해당 값을 얻을 수 있습니다. 다른 언어의 컬렉션과 유사
golang 맵을 수정하는 방법

【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)
}

지도 추가, 삭제, 수정 및 확인

[1] 추가 및 업데이트 작업:

map["key"]= value ——》키가 없으면 추가되고, 키가 있으면 수정됩니다.

map[“key”]= value ——》 如果key还没有,就是增加,如果key存在就是修改。

【2】删除操作:

delete(map,“key”) , delete是一个内置函数,如果key存在,就删除该key-value,如果k的y不存在,不操作,但是也不会报错

golang 맵을 수정하는 방법

【3】清空操作:

(1)如果我们要删除map的所有key ,没有一个专门的方法一次删除,可以遍历一下key,逐个删除

(2)或者map = make(…)【2】삭제 작업:

delete(map, "key") , 삭제는 내장 함수입니다. 키가 있으면 키-값을 삭제합니다. 존재하지 않습니다. 작업은 없지만 오류는 보고되지 않습니다

2 .png

【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)
}
🎜【5】길이 가져오기: len 함수🎜🎜【6】Traverse: for -range🎜
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()
        }
}
🎜【관련 추천: 🎜Go 비디오 튜토리얼🎜, 🎜프로그래밍 교육🎜】 🎜

위 내용은 golang 맵을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.