Los punteros en Golang son una variable que se utiliza para almacenar la dirección de memoria de otra variable. Los punteros en Golang también se denominan variables especiales. Las variables se utilizan para almacenar algunos datos en una dirección de memoria particular en el sistema.
También puede usar un puntero a una estructura . Una estructura en Golang es un tipo definido por el usuario que permite agrupar/combinar elementos de tipos posiblemente diferentes en un solo tipo. Para usar el puntero a una estructura, puede usar el operador & , es decir, el operador de dirección. Golang permite a los programadores acceder a los campos de una estructura utilizando los punteros sin ninguna desreferenciación explícita.
Ejemplo 1: Aquí, estamos creando una estructura llamada Empleado que tiene dos variables. En la función principal, cree la instancia de la estructura, es decir , emp . Después de eso, puede pasar la dirección de la estructura al puntero que representa el concepto de puntero a estructura. No es necesario usar la desreferenciación explícitamente, ya que dará el mismo resultado que puede ver en el programa a continuación (dos veces ABC).
// Golang program to illustrate the // concept of the Pointer to struct package main import "fmt" // taking a structure type Employee struct { // taking variables name string empid int } // Main Function func main() { // creating the instance of the // Employee struct type emp := Employee{"ABC", 19078} // Here, it is the pointer to the struct pts := &emp fmt.Println(pts) // accessing the struct fields(liem employee's name) // using a pointer but here we are not using // dereferencing explicitly fmt.Println(pts.name) // same as above by explicitly using // dereferencing concept // means the result will be the same fmt.Println((*pts).name) }
Producción:
&{ABC 19078} ABC ABC
Ejemplo 2: también puede modificar los valores de los miembros de la estructura o los literales de la estructura utilizando el puntero como se muestra a continuación:
// Golang program to illustrate the // concept of the Pointer to struct package main import "fmt" // taking a structure type Employee struct { // taking variables name string empid int } // Main Function func main() { // creating the instance of the // Employee struct type emp := Employee{"ABC", 19078} // Here, it is the pointer to the struct pts := &emp // displaying the values fmt.Println(pts) // updating the value of name pts.name = "XYZ" fmt.Println(pts) }
Producción:
&{ABC 19078} &{XYZ 19078}
Publicación traducida automáticamente
Artículo escrito por Anshul_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA