"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go의 단락 평가가 조건문의 성능에 영향을 미치나요?

Go의 단락 평가가 조건문의 성능에 영향을 미치나요?

2024년 12월 22일에 게시됨
검색:479

Does Go's Short-Circuit Evaluation Impact Performance in Conditional Statements?

Go의 단락 평가

프로그래밍에서 단락 평가는 주변 문의 결과를 결정하는 데 필요한 경우에만 표현식을 평가하는 기술입니다. . 이는 이전 조건이 이미 거짓인 경우 여러 조건의 평가가 불필요한 조건문에서 자주 사용됩니다.

Go는 다른 많은 프로그래밍과 유사하게 논리 연산자(&& 및 ||)에 대한 단락 평가를 구현합니다. 언어. 이는 if 문에서 통역사가 왼쪽에서 오른쪽으로 조건을 평가하고 결과가 알려지자마자 중지한다는 것을 의미합니다.

제공된 코드 예제와 관련하여 조건의 평가 순서는 영향을 미치지 않습니다. 프로그램의 성능. Go에서는 두 코드 조각이 모두 동일한 방식으로 작동합니다. 컴파일러는 표현식을 왼쪽에서 오른쪽으로 평가하고 결과를 결정하자마자 평가를 단락시킵니다.

이를 보여주기 위해 다음 코드를 고려하십시오.

package main

import "fmt"

func main() {
    var r *http.Request
    queries := make(map[string][]string)

    if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) {
        fmt.Println("Invalid querystring")
    }
}

isValidQueryParams가 r == nil 및 len(queries) == 0보다 더 많은 오버헤드를 가지더라도 컴파일러는 표현식을 순서대로 평가하고 결과가 명확해지자마자 단락합니다. 따라서 예제의 두 코드 조각 간에는 성능 차이가 없습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3