프로그래밍에서 단락 평가는 주변 문의 결과를 결정하는 데 필요한 경우에만 표현식을 평가하는 기술입니다. . 이는 이전 조건이 이미 false인 경우 여러 조건의 평가가 필요하지 않은 조건문에서 자주 사용됩니다.
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보다 더 많은 오버헤드를 가지며, 컴파일러는 결과가 명확해지자마자 표현식을 순서대로 평가하고 단락합니다. 따라서 귀하의 예에서 두 코드 조각 사이에는 성능 차이가 없습니다.
위 내용은 Go의 단락 평가가 조건문의 성능에 영향을 미치나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!