"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 > Você pode herdar métodos sem usar estruturas incorporadas no Go?

Você pode herdar métodos sem usar estruturas incorporadas no Go?

Publicado em 2024-11-11
Navegar:138

Can you inherit methods without using embedded structs in Go?

Estruturas de incorporação para herança de método

Pergunta

É possível herdar métodos de um tipo sem usar estruturas incorporadas?

Contexto

A discussão gira em torno do conceito de uso de estruturas incorporadas para obter acesso a métodos de outro tipo. O autor observa que incorporar uma estrutura os força a inicializar a estrutura incorporada ao inicializar a estrutura que a contém, o que eles consideram complicado. Eles fornecem exemplos de código para demonstrar o problema e expressam seu desejo de evitar a inicialização explícita da estrutura incorporada.

Resposta

A resposta aborda a limitação técnica que impede a herança sem estruturas incorporadas. Explica que a promoção de métodos de um tipo para outro só é possível através da incorporação. A especificação Go é citada como autoridade, afirmando que o conjunto de métodos de uma estrutura inclui apenas métodos declarados com essa estrutura como o tipo de receptor.

Estruturas incorporadas e campos promovidos

A resposta então se aprofunda no conceito de campos promovidos, que são campos de estruturas incorporadas anônimas que podem ser acessadas diretamente por meio da estrutura que o contém. No entanto, os campos promovidos não podem ser usados ​​em literais compostos, exigindo inicialização explícita ao criar uma estrutura contendo um campo anônimo incorporado.

Limitações e soluções alternativas

A resposta reconhece as limitações do uso de estruturas incorporadas e o ausência de mecanismos de herança direta em Go. Ele destaca que o principal motivo para usar estruturas incorporadas é promover métodos em vez de campos de dados, já que os dados podem ser acessados ​​por meio de composição.

Notas adicionais

A resposta termina humoristicamente com uma saudação pessoal a o autor, Jeff, referenciando uma interação anterior.

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