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

Tutorial básico de Golang

Comandos de controle em Golang

Funções e métodos em Golang

Estrutura de tipos em Golang

Golang Fatia & Array

Golang String (String)

Golang Ponteiro

Golang Interface

Golang Concorrência

Golang Exceção (Error)

Outros itens Golang

Array e Ponteiro Go

GoUm ponteiro em uma linguagem de programação ou no Golang é uma variável usada para armazenar outrouma variáveldo endereço de memória. Earrayum sequência de comprimento fixo, usada para armazenar elementos do mesmo tipo na memória.

Você pode usar um ponteiro para o array e passá-lo como parâmetro para a função. Para entender esse conceito, vamos dar um exemplo. No programa abaixo, usaremos um contendo5um array de ponteiros para elementosarr。Queremos usar a função para atualizar esse array. Isso significa que dentro da função alteramos o array ({78,89,45,56,14}),e isso será refletido no chamador. Portanto, aqui usamosupdatearrayA função, que tem como tipo de parâmetro um ponteiro para o array. Usandoupdatearray(&arr)O código, passamos o endereço do array. Dentro da função (*funarr)[4] = 750 Ou funarr[4] = 750 O código usa a forma de desreferência para atribuir novos valores ao array, que refletirão no array original. Finalmente, o programa fornecerá a saída[78 89 45 56 750]。

// O programa Golang passa ponteiros para
//Array como parâmetro da função
package main
import "fmt"
//Definir uma função
func updatearray(funarr *[5]int) {
    // Usar valor de índice para alterar o array
    (*funarr)[4] = 750
    //Você também pode escrever
    //A linha de código acima
    // funarr[4] = 750
}
func main() {
    //Obter ponteiro para o array
    arr := [5int{78, 89, 45, 56, 14}
    //Passar ponteiro para o array
    //E execute updatearray
    updatearray(&arr)
    //Array atualizado
    fmt.Println(arr)
}

Saída:

[78 89 45 56 750]

Atenção:Em Golang, não é recomendado usar ponteiros para arrays como parâmetro de função, pois o código torna-se difícil de ler. Da mesma forma, também não é uma boa maneira de implementar essa função. Para isso, você pode usar fatia em vez de passar ponteiros.

// Programa em Golang para exemplificar
//Usar fatia como parâmetro da função
package main
import "fmt"
func updateslice(funarr []int) {
    //Atualizar valor
    //No índice especificado
    funarr[4] = 750
}
func main() {
    //Definir um fatia
    s := [5int{78, 89, 45, 56, 14}
    //Passar fatia para
    //Função updateslice
    updateslice(s[:])
    //Exibir resultado
    fmt.Println(s)
}

Saída:

[78 89 45 56 750]