Una estructura o struct en Golang es un tipo definido por el usuario, lo que nos permite crear un grupo de elementos de diferentes tipos en una sola unidad. Cualquier entidad del mundo real que tenga algún conjunto de propiedades o campos se puede representar como una estructura. Este concepto generalmente se compara con las clases en la programación orientada a objetos. Se puede denominar como una clase ligera que no admite la herencia pero sí la composición.
En el lenguaje Go, puede comparar dos estructuras si son del mismo tipo y contienen los mismos valores de campo con la ayuda del operador == o el método DeeplyEqual(). Tanto el operador como el método devuelven verdadero si las estructuras son idénticamente iguales (en términos de los valores de sus campos), de lo contrario, devuelven falso. Y, si las variables comparadas pertenecen a estructuras diferentes, el compilador dará un error. Analicemos este concepto con la ayuda de los ejemplos:
Nota: El método DeeplyEqual() se define en el paquete «reflejar».
Ejemplo 1:
C
// Go program to illustrate the // concept of struct equality // using == operator package main import "fmt" // Creating a structure type Author struct { name string branch string language string Particles int } // Main function func main() { // Creating variables // of Author structure a1 := Author{ name: "Moana", branch: "CSE", language: "Python", Particles: 38, } a2 := Author{ name: "Moana", branch: "CSE", language: "Python", Particles: 38, } a3 := Author{ name: "Dona", branch: "CSE", language: "Python", Particles: 38, } // Checking if a1 is equal // to a2 or not // Using == operator if a1 == a2 { fmt.Println("Variable a1 is equal to variable a2") } else { fmt.Println("Variable a1 is not equal to variable a2") } // Checking if a1 is equal // to a2 or not // Using == operator if a2 == a3 { fmt.Println("Variable a2 is equal to variable a3") } else { fmt.Println("Variable a2 is not equal to variable a3") } }
Producción:
Variable a1 is equal to variable a2 Variable a2 is not equal to variable a3
Ejemplo 2:
C
// Go program to illustrate the // concept of struct equality // using DeepEqual() method package main import ( "fmt" "reflect" ) // Creating a structure type Author struct { name string branch string language string Particles int } // Main function func main() { // Creating variables // of Author structure a1 := Author{ name: "Soana", branch: "CSE", language: "Perl", Particles: 48, } a2 := Author{ name: "Soana", branch: "CSE", language: "Perl", Particles: 48, } a3 := Author{ name: "Dia", branch: "CSE", language: "Perl", Particles: 48, } // Comparing a1 with a2 // Using DeepEqual() method fmt.Println("Is a1 equal to a2: ", reflect.DeepEqual(a1, a2)) // Comparing a2 with a3 // Using DeepEqual() method fmt.Println("Is a2 equal to a3: ", reflect.DeepEqual(a2, a3)) }
Producción:
Is a1 equal to a2: true Is a2 equal to a3: false
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