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