驴C贸mo comparar dos estructuras en Go?
Debido a que las estructuras est谩n compuestas por diferentes tipos de campos, en el caso de la comparaci贸n, lo que se plantea es determinar si 2 variables son del mismo tipo de estructura con los mismos valores asignados.
Para verificar la igualdad entre 2 estructuras, se utiliza el operador de igualdad ==
o de diferencia en el caso contrario !=
.
Ejemplo de comparaci贸n entre estructuras en Go
Supongamos que tenemos una estructura para un autom贸vil
type Auto struct {
Marca string
Submarca string
Modelo int
Color string
}
Y tres instancias de la estructura.
auto1 := Auto{
Marca: "Toyota",
Submarca: "Prius",
Modelo: 2015,
Color: "blanco",
}
auto2 := Auto{
Marca: "Toyota",
Submarca: "Corolla",
Modelo: 2017,
Color: "cafe",
}
auto3 := Auto{
Marca: "Toyota",
Submarca: "Prius",
Modelo: 2015,
Color: "blanco",
}
Descripci贸n del ejemplo de comparaci贸n entre estructuras en Go
Como podemos ver, la estructura auto1
y auto2
son diferentes, pero auto1
y auto3
es igual. Podemos hacer la comprobaci贸n.
if auto1 != auto2 {
fmt.Println("Auto 1 y 2 son diferentes")
}
if auto1 == auto3 {
fmt.Println("Auto 1 y 3 son iguales")
}
Podemos comprobar lo anterior con la salida del c贸digo.
Auto 1 y 2 son diferentes
Auto 1 y 3 son iguales
No es posible realizar comparaciones entre diferentes tipos, si se intenta realizar esta operaci贸n el compilador generarara un error en tiempo de ejecuci贸n. Por lo que se recomienda utilizar reflect.TypeOf(estructura)
para verificar que sean del mismo tipo