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