English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do Golang

Sentença de controle do Golang

Função & método do Golang

Estrutura do Golang

fatia & array do Golang

String (String) do Golang

Ponteiro do Golang

Interface do Golang

Concorrência do Golang

Exceção (Error) do Golang

Outros itens do Golang

Comparação de Ponteiros do Linguagem Go

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