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

Tutorial Básico do Go

Controle de Fluxo do Go

Função e Método do Go

Estrutura do Go

Fatia e Array do Go

Cadeia de caracteres (String) do Go

Ponteiro do Go

Interface do Go

Concorrência do Go

Erro do Go

Miscelânea do Go

ponteiros do Go como parâmetros de função

linguagem de programação Goo ponteiro é uma variável que armazena o endereço de memória de outra variável. Você também pode, comovariávelda mesma forma, passar o ponteiro para a função. Existem duas maneiras de executar a seguinte operação:

  • criar um ponteiro e passá-lo para a função

  • passar o endereço de memória da variável

criar um ponteiro e passá-lo para a função

No seguinte programa, usamos a funçãoptfa função tem um parâmetro de ponteiro do tipo inteiro, o que significa que a função aceita apenas parâmetros do tipo ponteiro. Além disso, essa função altera a variávelxno início.xcontém o valor100. Mas após a chamada da função, o valor muda para748como mostrado na saída.

// O programa Go cria um ponteiro
//e passá-lo para a função
package main
import "fmt"
//aceitar ponteiro como parâmetro
func ptf(a *int) {
    //desreferenciar
    *a = 748
}
func main() {
    //variável normal
    var x = 100
    fmt.Printf("O valor de x antes da chamada da função é: %d\n", x)
    //obter um variável ponteiro
    //e alocar o endereço
    var pa *int = &x
    //chamar a função da seguinte forma
    //passar o ponteiro para a função
    ptf(pa)
    fmt.Printf("O valor de x após a chamada da função é: %d\n", x)
}

Saída:

O valor de x antes da chamada da função é: 100
O valor de x após a chamada da função é: 748

passar o endereço da variável para a chamada da função

Considere o seguinte programa, não criamos ponteiros para armazenar variáveisxo endereço, ou seja, o endereço no programa acimapadiretamente paraxpassar o endereço para a chamada da função, a chamada da função é semelhante ao método acima.

package main
import "fmt"
// ponteiro do tipo int como parâmetro
func ptf(a *int) {
    *a = 748
}
func main() {
    var x = 100
    fmt.Printf("O valor de x antes da chamada da função é: %d\n", x)
    //através da chamada de função
    //Passar o endereço
    //Variável x
    ptf(&x)
    fmt.Printf("O valor de x após a chamada da função é: %d\n", x)
}

Saída:

O valor de x antes da chamada da função é: 100
O valor de x após a chamada da função é: 748

Atenção:Você também pode usar o operador de declaração curta (:=) para declarar variáveis e ponteiros no programa acima.