"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 > Método do Receptor de Linguagem Go Language Modifique o valor não-ponteiro? Explicação detalhada

Método do Receptor de Linguagem Go Language Modifique o valor não-ponteiro? Explicação detalhada

Postado em 2025-03-11
Navegar:165

Why Does Go's Method with a Pointer Receiver Seem to Modify Non-Pointer Values?

Método com Pointer Receiver

No Tour of Go, Exercício 51 explora os receptores do método. A explicação fornecida afirma que o método de escala, que opera em um ponteiro para um vértice, não tem efeito quando recebe um valor de vértice diretamente. No entanto, modificar a principal função para passar um vértice não-ponteiro contradiz essa afirmação. Esse comportamento pode ser atribuído ao forte sistema de digitação de Go. Quando um ponteiro para t é esperado em um determinado contexto, apenas um ponteiro para t (*t) pode satisfazer esse requisito. O conjunto de métodos de & x contém m, x.m () é abreviado para (& x) .m (): "

em essência, o compilador reescreve o código para passar um ponteiro para o valor não-ponteiro quando a variável recepção tiver um tipo de receptor de ponteiro. Isso permite o método de escala para modificar a variável original.

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