English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No Go, é permitido comparar dois ponteiros. Os valores dos ponteiros são iguais apenas se eles apontarem para o mesmo valor na memória ou se eles forem nil. Você pode comparar ponteiros com os operadores == e != fornecidos pelo Go:
1. == operador:Se dois ponteiros apontarem para a mesma variável, este operador retorna true. Ou se dois ponteiros apontarem para variáveis diferentes, retorna false.
Sintaxe:
pointer_1 == pointer_2
package main import "fmt" func main() { val1 := 2345 val2 := 567 //Criar e inicializar ponteiros var p1 *int p1 = &val1 p2 := &val2 p3 := &val1 //Usar o operador == para comparar ponteiros res1 := &p1 == &p2 fmt.Println("p"1O ponteiro é igual a p?2Ponteiro: "", res1) res2 := p1 == p2 fmt.Println("p"1O ponteiro é igual a p?2Ponteiro: "", res2) res3 := p1 == p3 fmt.Println("p"1O ponteiro é igual a p?3Ponteiro: "", res3) res4 := p2 == p3 fmt.Println("p"2O ponteiro é igual a p?3Ponteiro: "", res4) res5 := &p3 == &p1 fmt.Println("p"3O ponteiro é igual a p?1Ponteiro: "", res5) }
Saída:
p1O ponteiro é igual a p?2Ponteiro: falso p1O ponteiro é igual a p?2Ponteiro: falso p1O ponteiro é igual a p?3Ponteiro: verdadeiro p2O ponteiro é igual a p?3Ponteiro: falso p3O ponteiro é igual a p?1Ponteiro: falso
2.!= operador:Se dois ponteiros apontarem para a mesma variável, este operador retorna falso. Ou se dois ponteiros apontarem para variáveis diferentes, retorna true.
Sintaxe:
pointer_1 != pointer_2
package main import "fmt" func main() { val1 := 2345 val2 := 567 //Criar e inicializar ponteiros var p1 *int p1 = &val1 p2 := &val2 p3 := &val1 // Usar o operador != para comparar ponteiros res1 := &p1 != &p2 fmt.Println("p"1O ponteiro não é igual a p2É um ponteiro: "", res1) res2 := p1 != p2 fmt.Println("p"1O ponteiro não é igual a p2É um ponteiro: "", res2) res3 := p1 != p3 fmt.Println("p"1O ponteiro não é igual a p3É um ponteiro: "", res3) res4 := p2 != p3 fmt.Println("p"2O ponteiro não é igual a p3É um ponteiro: "", res4) res5 := &p3 != &p1 fmt.Println("p"3O ponteiro não é igual a p1É um ponteiro: "", res5) }
Saída:
p1O ponteiro não é igual a p2Ponteiro: true p1O ponteiro não é igual a p2Ponteiro: true p1O ponteiro não é igual a p3É um ponteiro: falso p2O ponteiro não é igual a p3Ponteiro: true p3O ponteiro não é igual a p1Ponteiro: true