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