Comparando punteros en Golang

Los punteros en el lenguaje de programación Go o Golang es una variable que se utiliza para almacenar la dirección de memoria de otra variable. Los punteros en Golang también se denominan variables especiales. Las variables se utilizan para almacenar algunos datos en una dirección de memoria particular en el sistema. La dirección de memoria siempre se encuentra en formato hexadecimal (comenzando con 0x como 0xFFAAF, etc.).
En el lenguaje Go, puede comparar dos punteros entre sí. Los valores de dos punteros solo son iguales cuando apuntan al mismo valor en la memoria o si son nulos. Puede realizar una comparación de punteros con la ayuda de los operadores == y != proporcionados por el lenguaje Go:

1. Operador ==: este operador devuelve verdadero si ambos punteros apuntan a la misma variable. O devuelva falso si ambos punteros apuntan a diferentes variables.

Sintaxis:

pointer_1 == pointer_2

Ejemplo:

// Go program to illustrate the
// concept of comparing two pointers
package main
  
import "fmt"
  
func main() {
  
    val1 := 2345
    val2 := 567
  
    // Creating and initializing pointers
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
  
    // Comparing pointers 
    // with each other
    // Using == operator
    res1 := &p1 == &p2
    fmt.Println("Is p1 pointer is equal to p2 pointer: ", res1)
  
    res2 := p1 == p2
    fmt.Println("Is p1 pointer is equal to p2 pointer: ", res2)
  
    res3 := p1 == p3
    fmt.Println("Is p1 pointer is equal to p3 pointer: ", res3)
  
    res4 := p2 == p3
    fmt.Println("Is p2 pointer is equal to p3 pointer: ", res4)
  
    res5 := &p3 == &p1
    fmt.Println("Is p3 pointer is equal to p1 pointer: ", res5)
}

Producción:

Is p1 pointer is equal to p2 pointer:  false
Is p1 pointer is equal to p2 pointer:  false
Is p1 pointer is equal to p3 pointer:  true
Is p2 pointer is equal to p3 pointer:  false
Is p3 pointer is equal to p1 pointer:  false

2. Operador !=: este operador devuelve falso si ambos punteros apuntan a la misma variable. O devuelva verdadero si ambos punteros apuntan a diferentes variables.

Sintaxis:

pointer_1 != pointer_2

Ejemplo:

// Go program to illustrate the 
// concept of comparing two pointers
package main
  
import "fmt"
  
func main() {
  
    val1 := 2345
    val2 := 567
  
    // Creating and initializing pointers
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
  
    // Comparing pointers
    // with each other
    // Using != operator
    res1 := &p1 != &p2
    fmt.Println("Is p1 pointer not equal to p2 pointer: ", res1)
  
    res2 := p1 != p2
    fmt.Println("Is p1 pointer not equal to p2 pointer: ", res2)
  
    res3 := p1 != p3
    fmt.Println("Is p1 pointer not equal to p3 pointer: ", res3)
  
    res4 := p2 != p3
    fmt.Println("Is p2 pointer not equal to p3 pointer: ", res4)
  
    res5 := &p3 != &p1
    fmt.Println("Is p3 pointer not equal to p1 pointer: ", res5)
}

Producción:

Is p1 pointer not equal to p2 pointer:  true
Is p1 pointer not equal to p2 pointer:  true
Is p1 pointer not equal to p3 pointer:  false
Is p2 pointer not equal to p3 pointer:  true
Is p3 pointer not equal to p1 pointer:  true

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *