馃敟 COMPARACI脫N DE ESTRUCTURAS

驴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