English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
También puedes usar puntero astructPuntero. En Golang, struct (estructura) es un tipo definido por el usuario que permite agrupar proyectos de diferentes tipos/Combinado en un solo tipo. Para usar un puntero a la estructura, puedes usar&Operador, es decir, el operador de dirección. Golang permite a los programadores acceder a los campos de la estructura sin desreferenciar explícitamente.
Ejemplo1:Aquí, creamos una estructura llamada Employee que tiene dos variables. En la función main, creamos una instancia de la estructura, es decir, emp, y luego puedes pasar la dirección de la estructura al puntero que representa el concepto de estructura. No es necesario usar explícitamente la desreferencia, ya que dará el mismo resultado que el programa siguiente (dos ABC).
package main import "fmt" //Definir la estructura type Employee struct { //Configurar el campo name string empid int } func main() { //Instancia creada //Tipo de estructura de empleado emp := Employee{ 19078} //Aquí, se refiere al puntero del tipo de estructura pts := &emp fmt.Println(pts) //Acceder al campo de la estructura (el nombre del empleado) //Usar puntero, pero aquí no estamos usando la desreferencia explícita fmt.Println(pts.name) //A través del uso explícito de la desreferencia //Representa el resultado igual al anterior fmt.Println((*pts).name) }
Salida:
&{ABC 19078} ABC ABC
Ejemplo2:También puedes usar punteros, como se muestra a continuación para modificar el valor de los miembros de la estructura o la expresión literal de la estructura:
package main import "fmt" //Definir la estructura type Employee struct { name string empid int } func main() { //Instancia creada //Tipo de estructura de empleado emp := Employee{ 19078} //Aquí, se refiere al puntero del tipo de estructura pts := &emp //Mostrar el valor fmt.Println(pts) //Actualizar el valor de name pts.name = "XYZ" fmt.Println(pts) }
Salida:
&{ABC 19078} &{XYZ 19078}