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

Tutorial básico do Golang

Controle de语句 do Golang

Função & método do Golang

Estrutura do Golang

fatia & array do Golang

String (String) do Golang

Ponteiro do Golang

Interface do Golang

Concorrência do Golang

Exceção do Golang (Error)

Miscelânea do Golang

Estrutura e ponteiros do Go Linguagem

Você também pode usar ponteiros parastructdo ponteiro. No Golang, a struct (estrutura) é um tipo definido pelo usuário, que permite agrupar itens de tipos possivelmente diferentes/Combinar em um único tipo. Para usar um ponteiro para a estrutura, você pode usarOperador, ou operador de endereço. O Golang permite que os programadores acessem os campos da estrutura sem usar desreferência explícita.

Exemplo1:Aqui, criamos uma estrutura chamada Employee com duas variáveis. No main, criamos uma instância da estrutura, ou seja, emp, e então você pode passar o endereço da estrutura para o ponteiro que representa o conceito da estrutura. Não é necessário usar desreferência explicitamente, pois ele dará o mesmo resultado do programa abaixo (dois ABC).

package main
import "fmt"
//Definir estrutura
type Employee struct {
    //Definir campo
    name string
    empid int
{}
func main() {
    //Instância criada
    //Tipo de estrutura de funcionário
    emp := Employee{ 19078{}
    //Aqui, ele é um ponteiro para a estrutura
    pts := &emp
    fmt.Println(pts)
    //Acessar campo da estrutura (o nome do funcionário)
    //Usando ponteiros, mas aqui não usamos desreferência explícita
    fmt.Println(pts.name)
    //Através do uso explícito de desreferência
    //Representa o resultado igual ao acima
    fmt.Println(*.name)
{}

Saída:

&{ABC} 19078{}
ABC
ABC

Exemplo2:Você também pode usar ponteiros, como na modificação do valor do membro da estrutura ou do valor literal da estrutura:

package main
import "fmt"
//Definir estrutura
type Employee struct {
    name string
    empid int
{}
func main() {
    //Instância criada
    //Tipo de estrutura de funcionário
    emp := Employee{ 19078{}
    //Aqui, ele é um ponteiro para a estrutura
    pts := &emp
    //Exibir valor
    fmt.Println(pts)
    //Atualizar o valor de name
    pts.name = "XYZ"
    fmt.Println(pts)
{}

Saída:

&{ABC} 19078{}
&{XYZ} 19078{}