Una estructura o struct en Golang es un tipo de datos definido por el usuario que permite combinar tipos de datos de diferentes tipos y actuar como un registro.
Una variable de estructura en Golang se puede copiar a otra variable fácilmente usando la declaración de asignación (=) . Los cambios realizados en la segunda estructura no se reflejarán en la primera estructura.
Ejemplo 1:
// Golang program to illustrate copying // a structure to another variable package main import ( "fmt" ) // declaring a structure type Student struct{ // declaring variables name string marks int64 stdid int64 } // main function func main() { // creating the instance of the // Student struct type std1 := Student{"Vani", 98, 20024} // prints the student struct fmt.Println(std1) // copying the struct student // to another variable by // using the assignment operator std2 := std1 // printing copied struct // this will have same values // as struct std1 fmt.Println(std2) // changing values of struct // std2 after copying std2.name = "Abc" std2.stdid = 20025 // printing updated struct fmt.Println(std2) }
Producción:
{Vani 98 20024} {Vani 98 20024} {Abc 98 20025}
En el caso de una referencia de puntero a la estructura, la ubicación de memoria subyacente de la estructura original y el puntero a la estructura serán los mismos. Cualquier cambio realizado en la segunda estructura también se reflejará en la primera estructura. El puntero a una estructura se logra mediante el uso del operador ampersand (&) . Se asigna en el montón y se comparte su dirección.
Ejemplo 2:
// Golang program to illustrate the // concept of a pointer to a struct package main import ( "fmt" ) // declaring a structure type Person struct{ // declaring variables name string address string id int64 } // main function func main() { // creating the instance of the // Person struct type p1 := Person{"Vani", "Delhi", 20024} // prints the student struct fmt.Println(p1) // referencing the struct person // to another variable by // using the ampersand operator // Here, it is the pointer to the struct p2 := &p1 // printing pointer to the struct fmt.Println(p2) // changing values of struct p2 p2.name = "Abc" p2.address = "Hyderabad" // printing updated struct fmt.Println(p2) // struct p1 values will // also change since values // of p2 were also changed fmt.Println(p1) }
Producción:
{Vani Delhi 20024} &{Vani Delhi 20024} &{Abc Hyderabad 20024} {Abc Hyderabad 20024}
Publicación traducida automáticamente
Artículo escrito por vanigupta20024 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA