Ordem de Execução dos Operadores Lógicos
Ao usar os operadores lógicos E e OU, o Go precisa determinar os valores booleanos em ambos os lados do operador. Mas qual lado é avaliado primeiro?
Vamos explorar isso juntos.
Escreva o seguinte código em opePractice.go
:
package main
import "fmt"
func leftFunc(flag bool) bool {
fmt.Println("Função da esquerda é chamada!")
return flag
}
func rightFunc(flag bool) bool {
fmt.Println("Função da direita é chamada!")
return true
}
func main() {
if leftFunc(true) && rightFunc(true) {
fmt.Println("Avaliação completa")
}
}
Execute o código:
cd ~/project
go run opePractice.go
Left function is called!
Right function is called!
Evaluation is complete
Não é difícil descobrir que, na operação lógica E, o operando esquerdo é avaliado primeiro e, em seguida, o operando direito é avaliado.
E quanto à operação lógica OU? Escreva o seguinte código em opePractice.go
:
package main
import "fmt"
func leftFunc(flag bool) bool {
fmt.Println("Função da esquerda é chamada!")
return flag
}
func rightFunc(flag bool) bool {
fmt.Println("Função da direita é chamada!")
return true
}
func main() {
if leftFunc(true) || rightFunc(true) {
fmt.Println("Avaliação lógica OU completa")
}
}
Execute o código:
cd ~/project
go run opePractice.go
Left function is called!
Logical OR evaluation is complete
A ordem de avaliação das operações lógicas E e OU é da esquerda para a direita.
No entanto, na operação lógica OU, se o operando esquerdo for verdadeiro, o operando direito não é avaliado.
Portanto, no desenvolvimento real, devemos colocar as condições que são mais propensas a serem verdadeiras no lado esquerdo do operador lógico OU, reduzindo o tempo de execução do programa.