>백엔드 개발 >Golang >Go 목록에서 멤버십 가치를 효율적으로 확인할 수 있는 방법은 무엇입니까?

Go 목록에서 멤버십 가치를 효율적으로 확인할 수 있는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 01:08:10948검색

How Can I Efficiently Check for Value Membership in Go Lists?

Go에서 목록의 값 멤버십 확인

Python에서 in 키워드는 목록 내에 값이 존재하는지 편리하게 확인합니다. Go의 비슷한 기능을 사용하려면 약간 다른 접근 방식이 필요합니다.

한 가지 옵션은 문자열 키와 정수 값이 있는 맵을 활용하는 것입니다. 그러나 이 접근 방식을 사용하려면 사용되지 않는 정수 값을 지정해야 하므로 불편할 수 있습니다.

부울 값이 포함된 맵 사용

보다 우아한 솔루션은 문자열이 포함된 맵을 생성하는 것입니다. 키와 부울 값. 맵에 키가 없으면 기본 부울 값인 false가 반환됩니다.

valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true}

if valid[x] {
    fmt.Println("found")
} else {
    fmt.Println("not found")
}

슬라이스로 최적화

유효한 값이 많은 경우 , 맵 값을 true로 초기화하려면 슬라이스를 사용하는 것이 좋습니다.

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

더 짧게 상수를 사용한 초기화

또는 유형이 지정되지 않은 상수나 부울 상수를 생성하고 초기화를 더욱 최적화할 수 있습니다.

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

이러한 기술 중 하나를 채택하면 value는 Go의 목록 내에 포함되어 Python의 in 키워드와 유사한 기능을 제공합니다.

위 내용은 Go 목록에서 멤버십 가치를 효율적으로 확인할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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