Puntero a una estructura en Golang

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *