English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Golang

Sentencias de control de Golang

Funciones y métodos de Golang

Estructuras de Golang

Cortes y arreglos de Golang

Cadenas (String) de Golang

Punteros de Golang

Interfaces de Golang

Concurrencia de Golang

Excepciones de Golang (Error)

Misceláneas de Golang

Estructuras y punteros en el lenguaje Go

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 usarOperador, 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}