> 백엔드 개발 > Golang > Go는 Python의 'if x in'과 같은 멤버십 확인을 어떻게 처리합니까?

Go는 Python의 'if x in'과 같은 멤버십 확인을 어떻게 처리합니까?

Barbara Streisand
풀어 주다: 2024-12-18 17:19:11
원래의
378명이 탐색했습니다.

How Does Go Handle Membership Checks Like Python's

Python의 "if x in" 구성에 대한 Go의 답변

프로그래밍에서는 종종 요소 내에 요소가 있는지 확인해야 하는 경우가 있습니다. 수집. Python에서는 "if x in" 구문을 사용하여 이를 간결하게 수행할 수 있습니다. 하지만 Go도 비슷한 메커니즘을 제공하나요?

기능 구현

불행히도 Go에는 내장된 "if x in" 구문이 부족합니다. 하지만 이 기능은 두 가지 방법으로 구현할 수 있습니다:

1. Slices.Contains 사용(Go 1.18 이상)

Go 1.18부터 언어는 주어진 요소가 슬라이스 내에 존재하는지 확인하는 데 사용할 수 있는 Slices.Contains 함수를 제공합니다.

package main

func main() {
    arr := []int{1, 2, 3}
    fmt.Println(slices.Contains(arr, 2)) // True
}
로그인 후 복사

2. 사용자 정의 함수 사용(Go 1.18 이전 버전)

Go 1.18 이전에는 이 검사를 수행하기 위해 자체 함수를 정의해야 했습니다. 예는 다음과 같습니다.

package main

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

func main() {
    arr := []string{"a", "b", "c"}
    fmt.Println(stringInSlice("b", arr)) // True
}
로그인 후 복사

맵으로 최적화

멤버십 확인을 자주 수행하는 경우 배열이나 슬라이스 대신 맵을 사용하는 것이 좋습니다. 지도는 지속적인 조회를 제공하여 성능을 크게 향상시킵니다.

package main

func main() {
    visitedURL := map[string]bool{
        "http://www.google.com": true,
        "https://paypal.com":     true,
    }
    if visitedURL[thisSite] {
        fmt.Println("Already been here.")
    }
}
로그인 후 복사

Go에는 Python의 "if x in" 구문과 완전히 동일한 기능이 없지만 앞서 언급한 접근 방식은 다양한 시나리오에서 요소 존재를 확인할 수 있는 유연한 솔루션을 제공합니다. .

위 내용은 Go는 Python의 'if x in'과 같은 멤버십 확인을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿