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

Tutorial básico de Golang

Control de flujo de Golang

Funciones y métodos de Golang

Estructuras de Golang

Cortes y matrices de Golang

Cadenas (String) de Golang

Punteros de Golang

Interfaz de Golang

Concurrencia de Golang

Excepciones (Error) de Golang

Misceláneos de Golang

Comparación de punteros del lenguaje Go

En el lenguaje Go, se permite comparar dos punteros. Los valores de dos punteros solo son iguales cuando apuntan al mismo valor en la memoria o cuando ambos son nil. Puede comparar punteros con los operadores == y != proporcionados por el lenguaje Go:

1. == operador:Si ambos punteros apuntan al mismo variable, este operador devuelve true. O si ambos punteros apuntan a diferentes variables, devuelve false.

Sintaxis:

pointer_1 == pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //Crear e inicializar un puntero
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    //Comparar punteros usando el operador ==
    res1 := &p1 == &p2
    fmt.Println("p"1¿El puntero es igual a p?2Puntero: "", res1)
    res2 := p1 == p2
    fmt.Println("p"1¿El puntero es igual a p?2Puntero: "", res2)
    res3 := p1 == p3
    fmt.Println("p"1¿El puntero es igual a p?3Puntero: "", res3)
    res4 := p2 == p3
    fmt.Println("p"2¿El puntero es igual a p?3Puntero: "", res4)
    res5 := &p3 == &p1
    fmt.Println("p"3¿El puntero es igual a p?1Puntero: "", res5)
}

Salida:

p1¿El puntero es igual a p?2Puntero: false
p1¿El puntero es igual a p?2Puntero: false
p1¿El puntero es igual a p?3Puntero: true
p2¿El puntero es igual a p?3Puntero: false
p3¿El puntero es igual a p?1Puntero: false

2.!= operador:Si ambos punteros apuntan al mismo variable, este operador devuelve false. O si ambos punteros apuntan a diferentes variables, devuelve true.

Sintaxis:

pointer_1 != pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //Crear e inicializar un puntero
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    // Comparar punteros usando el operador !=
    res1 := &p1 != &p2
    fmt.Println("p"1El puntero no es igual a p2¿Es un puntero?: "", res1)
    res2 := p1 != p2
    fmt.Println("p"1El puntero no es igual a p2¿Es un puntero?: "", res2)
    res3 := p1 != p3
    fmt.Println("p"1El puntero no es igual a p3¿Es un puntero?: "", res3)
    res4 := p2 != p3
    fmt.Println("p"2El puntero no es igual a p3¿Es un puntero?: "", res4)
    res5 := &p3 != &p1
    fmt.Println("p"3El puntero no es igual a p1¿Es un puntero?: "", res5)
}

Salida:

p1El puntero no es igual a p2¿Puntero?: true
p1El puntero no es igual a p2¿Puntero?: true
p1El puntero no es igual a p3¿Es un puntero?: false
p2El puntero no es igual a p3¿Puntero?: true
p3El puntero no es igual a p1¿Puntero?: true