"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você modifica o valor desreferenciado por um ponteiro no Go?

Como você modifica o valor desreferenciado por um ponteiro no Go?

Publicado em 2024-11-08
Navegar:668

How Do You Modify the Value Dereferenced by a Pointer in Go?

Modificando o valor desreferenciado por um ponteiro no Go

Passar ponteiros para funções permite modificar os valores aos quais eles se referem. No entanto, é necessário compreender o funcionamento interno dos ponteiros para executar esta operação corretamente.

Desreferenciando Ponteiros

Para modificar um valor apontado por um ponteiro, é essencial desreferenciar o ponteiro. No Go, o operador asterisco (*) é usado para essa finalidade. Ao desreferenciar um ponteiro, você pode acessar o valor subjacente para o qual ele aponta.

Alterando valores de ponteiro versus valores apontados

A principal distinção é entre alterar o valor de um ponteiro e alterar o valor dele aponta para. Atribuir um novo valor a uma variável de ponteiro altera apenas o endereço que ela armazena. Por exemplo, o trecho de código abaixo não modifica o valor apontado para:

func f(p *Test) {
   p = &Test{4}
}

Modificando valores apontados

Para modificar o valor apontado é necessário utilizar o operador de desreferenciação. Isso pode ser feito explícita ou implicitamente.

Desreferenciação explícita:

func f(p *Test) {
   *p = Test{4}
}

Desreferenciação implícita:

func f(p *Test) {
   p.Value = 4
}

Em ambos os casos, o valor apontado por p é alterado.

Modificação de ponteiro para ponteiro

Passar um ponteiro para um ponteiro (*Test) permite modificar o valor do ponteiro armazenado na função principal. No entanto, isso não alterará o valor apontado pelo ponteiro original.

func f(p **Test) {
   *p = &Test{4}
}

Em resumo, ao passar ponteiros para funções, é crucial entender a diferença entre modificar o valor de um ponteiro e modificar o valor para o qual ele aponta. A desreferenciação de ponteiros é essencial para realizar a última operação, permitindo modificações nos valores de dados subjacentes.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3