В программировании короткое вычисление — это метод, при котором выражение вычисляется только в том случае, если необходимо определить результат окружающего его оператора. . Это часто используется в условных операторах, где оценка нескольких условий не требуется, если предыдущее условие уже ложно.
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