>백엔드 개발 >Golang >Go에서 맵 키를 안전하게 검색하는 방법: 유형 불일치 문제 해결?

Go에서 맵 키를 안전하게 검색하는 방법: 유형 불일치 문제 해결?

Linda Hamilton
Linda Hamilton원래의
2024-12-31 01:34:101036검색

How to Safely Retrieve Map Keys in Go: Addressing Type Mismatch Issues?

Go에서 맵 키를 얻는 방법

맵에서 키를 검색할 때 유형 호환성을 보장하는 것이 중요합니다. Go의 강력한 타이핑에는 동일한 유형의 맵 키가 필요합니다. 안타깝게도 Keys() 함수가 map[interface{}]interface{} 유형의 맵을 지정하지만 실제 맵이 map[int]interface{} 유형인 경우 유형 불일치 오류가 발생합니다.

Go 제네릭 및 유형 호환성

Go는 Java나 C#과 같은 언어와 달리 제네릭을 지원하지 않습니다. 이는 언어를 단순화하고 성능을 향상시킵니다. 결과적으로 모든 키 또는 값 유형의 맵에서 작동하는 일반 함수를 생성할 수 없습니다.

유형 불일치 문제 해결

유형 불일치를 해결하려면 다음과 같은 몇 가지 옵션이 있습니다.

  • 여기에 설명된 대로 map[int]인터페이스{}를 명시적으로 처리하도록 Keys() 함수를 수정하세요. 코드:
func Keys(m map[int]interface{}) []int {
    keys := make([]int, len(m))
    i := 0
    for k := range m {
        keys[i] = k
        i++
    }
    return keys
}
  • 또는 맵을 map[interface{}]interface{}로 변경하여 Keys() 함수와의 유형 호환성을 보장합니다.
m2 := map[interface{}]interface{}{
    2: "string",
    3: "int",
}
  • 성능이 포함되어 있지만 Reflect 패키지를 활용할 수도 있습니다. 의미합니다.

위 내용은 Go에서 맵 키를 안전하게 검색하는 방법: 유형 불일치 문제 해결?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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