Go에서지도에 키가 포함되어 있는지 확인하는 방법

  1. Go에서map의 구조
  2. Go-map에서key를 확인하십시오

해시 테이블은Go에서map 데이터 유형으로 구현됩니다. Go Maps는 정렬되지 않은 키-값 쌍의 모음으로 볼 수 있습니다. Maps는 빠른 검색, 추가 및 삭제 기능으로 인해Go에서 가장 강력하고 다양한 데이터 유형 중 하나입니다. map에서key의 값을 얻으려고 할 때 두 개의 반환 값을 얻습니다. 두 번째 값이 true이면keymap에 있습니다.

Go에서map의 구조

map 구문

var map_name map[KeyType]ValueType

KeyType은 비교 가능한datatype이고ValueTypemap 자체를 포함한 모든datatype이기도합니다. map의 모든keys에 대한datatype은 같아야합니다. 마찬가지로, 맵의 모든 ‘값’에 대한 ‘데이터 유형’도 동일해야합니다. 그러나 ‘키’의 ‘데이터 유형’과 ‘값’의 ‘데이터 유형’은 다를 수 있습니다.

package main

import "fmt"

func main() {
    map_1 := map[string]string{
        "Jenna": "Sthapit"
    }

    for k, v := range map_1 {
        fmt.Printf("Key:%v\nValue: %s\n", k, v)
    }

}   

산출:

Key:Jenna
Value: Sthapit

위의 예에서map_1에는keysvalues​모두에 대한string 데이터 유형이 있습니다. map_1에서SthapitJenna 키의 값입니다.

Go-map에서key를 확인하십시오

map에 Go에key가 포함되어 있는지 확인하는 구문

first_value, second_value := map_name[key_name]

위의 문장은 두 가지 값을 반환합니다. first_valuesecond_value. first_valuekey의 값을 제공합니다. map_namekey_name이 포함되어 있지 않으면first_value가 기본값 zero value가됩니다. 마찬가지로second_valuekey_namemap에 있으면 true가되는 부울 값입니다. first_valuesecond_value를 다른 방법으로 해석하여map_namekey_name이 있는지 여부를 확인할 수 있습니다.

package main

import "fmt"

func main() {
    map_name := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }
    _, second_value_1 := map_name[1]
    fmt.Printf("second_value for 1: %t\n", second_value_1)

    _, second_value_9 := map_name[9]
    fmt.Printf("second_value for 9: %t\n", second_value_9)
}   

산출:

second_value for 1: true
second_value for 9: false

0에 대한second_valuemap_name에 키0이 있으므로true입니다. 그러나9에 대한second_valuemap_name에 키9가 없으므로false입니다.

package main

import "fmt"

func main() {
    map_name := map[string]string{
        "Giri":     "Alok",
        "Nembang":  "Reman",
        "Maharjan": "Riken",
        "Jha":      "Rudra",
    }
    if first_value, second_value := map_name["Giri"]; second_value {
        fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Giri is not present in map.\n")
    }

    if first_value, second_value := map_name["Sthapit"]; second_value {
        fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Sthapit is not present in map. \n")
    }
}
   

산출:

Giri is present in map. Value is: Alok
Sthapit is not present in map.

이 예에서는if 문을 사용하여keymap에 있는지 확인했습니다. Girikey이고Sthapitmap_namekey가 아닙니다.

관련 문장 - Go Map

  • Go에서 전체지도를 반복하는 방법