English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 usar&Operador, 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{}