>백엔드 개발 >Golang >지도 golang의 사용법

지도 golang의 사용법

王林
王林원래의
2023-05-10 19:46:05661검색

Golang은 효율성이 높고 간단하고 배우기 쉬운 구문을 갖춘 매우 강력한 프로그래밍 언어입니다. Go의 장점 중 가장 큰 이유는 지도와 같은 내장 데이터 구조입니다. 이번 글에서는 Go map 사용법에 대해 좀 더 자세히 살펴보겠습니다.

Go 맵은 키-값 쌍의 순서가 지정되지 않은 모음입니다. 즉, 모든 유형의 값을 키와 값으로 사용할 수 있습니다. 맵 내의 키-값 쌍은 특정 순서로 저장되지 않고 해시 값의 순서로 저장됩니다. 이 기능에 대해서는 아래에서 자세히 설명하겠습니다.

지도 만들기

Go에서 지도를 만들려면 내장 함수인 make()를 사용해야 합니다. 맵을 생성하고 여기에 키-값 쌍을 추가하는 방법을 살펴보겠습니다.

m := make(map[string]int) // 创建一个字符串为键,int 类型为值的 map
m["foo"] = 42             // 向 map 中添加键为 "foo" 的值为 42
fmt.Println(m["foo"])     // 输出 map 中键为 "foo" 的值,输出 42

이 예에서는 문자열 키와 int 값을 사용하여 맵을 만든 다음 "foo" 키와 함께 값 42를 추가합니다. 코드의 마지막 줄은 "foo" 키를 사용하여 맵의 값을 출력하므로 42라는 출력을 얻습니다.

지도를 생성할 때 초기값을 지정하는 다른 방법도 있습니다. 다음과 같이 시도해 볼 수 있습니다.

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

이 예에서는 키 "foo"의 값이 42이고 키 "bar"의 값이 24인 두 개의 키-값 쌍이 있는 맵을 만들었습니다.

Map의 값에 액세스

Go에서 지도의 값에 액세스하려면 다음 방법을 사용할 수 있습니다.

val, ok := m["foo"]
fmt.Println(val, ok)     // 输出 42, true

여기서 val 변수는 지도의 "foo" 키 값을 저장하고 ok 변수는 키가 맵에 존재하는지 여부를 나타냅니다. "foo"에 대한 항목입니다.

맵에 해당 항목이 없으면(즉, "foo"가 키가 아닌 경우) ok 변수는 false가 됩니다. 그래서 맵에 있는 값에 성공적으로 접근했는지 확인하고 싶다면 ok 변수의 값을 확인하면 됩니다.

Map의 값에 대한 반복

Go에서 지도의 값에 대한 반복은 쉽습니다. for-range 루프를 사용할 수 있습니다.

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

for k, v := range m {
    fmt.Printf("key: %s, value: %d
", k, v)
}

// 输出:
// key: foo, value: 42
// key: bar, value: 24

이 예에서는 for-range 루프를 사용하여 맵 m의 키와 값을 반복하고 각 반복마다 출력합니다. for 루프의 구문은 맵의 키뿐만 아니라 맵의 값도 반복합니다.

Map에서 값 삭제

Go map에서 값을 삭제하는 방법도 매우 간단합니다. delete() 함수만 사용하면 됩니다.

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

delete(m, "foo") // 删除 map 中键为 "foo" 的键值对

이 예에서는 delete() 함수를 사용하여 맵에서 키가 "foo"인 키-값 쌍을 삭제합니다. 삭제 후에는 지도에 "foo" 키가 있는 항목이 더 이상 포함되지 않습니다.

지도 크기 및 용량

Go에서 지도에는 크기 및 용량 속성이 있습니다. 그러나 다른 언어의 데이터 구조와 달리 Go의 맵에는 명시적인 용량 속성이 없습니다. 따라서 map의 크기를 알고 싶다면 아래와 같이 내장 함수 len()을 사용해야 합니다.

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

fmt.Println(len(m)) // 输出长度为 2

여기서는 len() 함수를 사용하여 map m의 길이를 출력하고 그 출력은 다음과 같습니다. 2.

지도 성능 및 사용 권장 사항

map은 매우 강력한 데이터 구조이지만 주의해서 사용해야 합니다. 맵은 동적 해시 테이블이므로 많은 개발자는 맵이 다른 데이터 구조보다 빠르다고 생각합니다. 그러나 실제 사용에서는 메모리 관리 및 해시 충돌로 인해 맵 성능이 영향을 받아 코드 속도가 느려질 수 있습니다.

Go 맵 사용에 대한 몇 가지 제안 사항은 다음과 같습니다.

  • 맵에 키-값 쌍을 너무 많이 추가하지 마세요. 키-값 쌍이 너무 많으면 더 많은 해시 충돌이 발생할 수 있습니다.
  • 큰 맵을 처리해야 하는 상황에서는 동시성이 안전한 sync.Map 유형을 사용하는 것이 좋습니다.
  • 성능을 고려할 때 배열, 슬라이스 또는 기타 데이터 구조 사용을 고려해야 합니다.

그럼에도 불구하고 지도는 매우 편리하고 유연한 데이터 구조입니다. 현명하게 사용한다면 Go 코드에 이상적일 것입니다.

Summary

이 글에서는 Golang의 map 사용법에 대해 알아봤습니다. 맵의 항목을 생성, 액세스, 반복, 삭제하는 방법과 맵의 크기 및 용량을 보는 방법을 배웠습니다. 동시에 우리는 Go에서 이 데이터 구조를 더 잘 사용할 수 있도록 지도 사용에 대한 몇 가지 제안도 제공합니다.

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

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