O que é uma classe e um objeto?
Antes que possamos responder se Ir tem Aulas e objetos, Primeiro precisamos definir o que eles são no contexto da programação. A aula é um modelo ou modelo que descreve as características e ações de uma coleção de objetos. Um objeto é criado como uma instância de um aula Quando a memória é alocada e seu estado é inicializado em tempo de execução. Aulas e objetos são os principais blocos de construção em linguagens de programação orientadas a objetos clássicos, como Java, C ++ ou C# que suportam polimorfismo, herança e encapsulamento.
Estruturas em Golang
Em Vá, aulas são substituídos por tipos de dados definidos pelo usuário chamados estruturas. Esses estruturas Combine vários elementos ou propriedades e permitir a inclusão de métodos - funções que operam em instâncias do estrutura. Enquanto estruturas compartilhar algumas semelhanças com Aulas como herança e interfaces, também existem diferenças notáveis. Por exemplo, Ir Não possui um construtor - um método único que inicializa o estado de um objeto na criação, como normalmente é encontrado em idiomas baseados em classes.
Interfaces em Golang
Ir tem um conceito que é como objetos: interfaces. Um interface é uma coleção de métodos que descrevem um comportamento ou funcionalidade, mas sem especificar como ela é implementada. Interfaces fornecer uma maneira de alcançar o polimorfismo em Ir, Permitir que tipos diferentes sejam usados de forma intercambiável se eles atender aos requisitos da interface. Este é um conceito poderoso que permite Ir Para obter um alto grau de flexibilidade e extensibilidade sem sacrificar o desempenho ou a simplicidade.
Uso de estruturas e interfaces em Golang
O exemplo a seguir ilustra o uso de estrutura e interfaces em Ir.
Pacote principalNós criamos dois estruturas, Humano e Trabalhador, No código acima. As funções que imprimem as mensagens são criadas. O estruturas são chamados no principal() função do Pessoa interface. Podemos ver que o Informações o método foi implementado por ambos Trabalhador e a Humano, Portanto, a variável i com o tipo Pessoa A interface funcionará corretamente e imprimirá a saída.
Saída
Ir tem uma abordagem única para encapsulamento. Encapsulamento é realizado na programação convencional orientada a objetos, tornando os campos privados e tornando-os acessíveis através de métodos de getter e setter. Em Ir, encapsulamento é alcançado usando nomes de campos minúsculos, que só são visíveis no mesmo pacote. Essa estratégia é mais direta e inequívoca, o que torna mais simples entender como o código se comporta e reduz a possibilidade de efeitos colaterais imprevistos.
Ir fornece uma forma simplificada de polimorfismo. A programação orientada a objetos tem um recurso chamado polimorfismo Isso permite que objetos de várias classes sejam tratados como instâncias da mesma classe. Ir não fornece a herança convencional de classe, mas suporta interfaces, que podem ser usadas para especificar um conjunto de métodos que uma estrutura deve implementar. Ir Também oferece asserções de tipo, que permitem que os programadores examinem o conteúdo de uma variável de interface e obtenham o valor concreto subjacente.
Conclusão
Ir não tem Aulas ou objetos No sentido clássico; Em vez disso, ele usa estruturas e interfaces, que oferecem funcionalidade comparável de uma maneira mais direta e leve. Ir ganhou popularidade entre os desenvolvedores que priorizam a simplicidade, a legibilidade e o desempenho adotando uma filosofia e gramática diferentes. Embora se familiarize com Vai A metodologia pode levar algum tempo, suas características distintas e design resultam em código mais eficaz e sustentável.