Mostrando postagens com marcador ponteiro. Mostrar todas as postagens
Mostrando postagens com marcador ponteiro. Mostrar todas as postagens

segunda-feira, 24 de setembro de 2018

Programando em Go (Golang) - Ponteiros (pointer)

Assim como em linguagens como C, C++ e Pascal, dente outras, Go também suporte para ponteiros.
A principal função de um ponteiro é apontar para um endereço de memoria, que no caso contém o valor de uma determinada variável.

Sintaxe:

nome_ponteiro *tipo_variavel

Onde:

  • nome_ponteiro - Nome do ponteiro
  • *tipo_variavel - Tipo do ponteiro.

O operador & gerar um ponteiro para seu operando

Sintaxe:


variavel := valor

ponteiro = &variavel


Onde:

  • variavel - variavel(nesse caso operando) para qual o ponteiro apontará o local da memoria.
  • valor - Valor a ser alocado na memória.
  • ponteiro - Nome do ponteiro a ser utilizado
  • &variavel - Nesse trecho é feito a referência de memoria da variavel ao ponteiro através do &.

Exemplo 1:

package main

import "fmt"

func main() {

 nome := "Julho"
 ponteiro := &nome

 fmt.Printf("Menu nome é %s",*ponteiro)

 }

Caso você queira desrreferência um ponteiro basta setar o valor no mesmo através da sintaxe abaixo:

Sintaxe:


*ponteiro = valor

Onde:


ponteiro - Nome do ponteiro que será desrreferênciado.
valor - Novo valor do ponteiro.

Exemplo 2:



package main

import "fmt"

func main() {

 nome := "Julho"
 ponteiro := &nome

 fmt.Printf("Menu nome é %s",*ponteiro)

 *ponteiro="Maria"

 fmt.Printf("Menu nome é %s",*ponteiro)


 }

Ai vem a dúvida por que usar um ponteiro ?
A resposta é simples você deseja que usar a referencia de uma valor de uma determinada variavel e não o valor em si.