O que é uma classe e um objeto em Golang?

O Que E Uma Classe E Um Objeto Em Golang



Idéias fundamentais em programação de computadores, como aula e objeto fornecem uma estrutura para agrupar o código em módulos reutilizáveis ​​e adaptáveis. Golang tem sua própria sintaxe, recursos e filosofia distintos. Ao contrário de outras línguas, a solução não é tão óbvia quando se trata dos conceitos de aula e objeto em Ir . Neste artigo, exploraremos se o Go tem um conceito de aula e um objeto e como ele se compara a outras linguagens de programação.

O que é uma classe e um objeto?

Antes que possamos responder se Ir tem Aulas e objetos , primeiro precisamos definir o que são no contexto da programação. A aula é um modelo ou gabarito 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ássicas, como Java, C++ ou C#, que oferecem suporte a polimorfismo, herança e encapsulamento.

Estruturas em Golang

Em vai, aulas são substituídos por tipos de dados definidos pelo usuário chamados structs. Esses estruturas combinar vários elementos ou propriedades e permitir a inclusão de métodos – funções que operam em instâncias do struct. Enquanto estruturas compartilham 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 exclusivo que inicializa o estado de um objeto na criação, como normalmente é encontrado em linguagens baseadas 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 é implementado. Interfaces fornecer uma maneira de alcançar o polimorfismo em Ir , permitindo que diferentes tipos sejam usados ​​de forma intercambiável se satisfizerem os requisitos da interface. Este é um conceito poderoso que permite Ir para atingir um alto grau de flexibilidade e extensibilidade sem sacrificar o desempenho ou a simplicidade.



Uso de Structs e Interfaces em Golang

O exemplo a seguir ilustra o uso de estrutura e interfaces em Ir .



pacote principal
importar 'fmt'

tipo humano estrutura {
string de nome
}

tipo Trabalhador estrutura {
Humano
sequência de trabalho
}

função ( h Humano ) Informações ( ) {
fmt. printf ( 'Eu sou S \n ' , h. nome )
}

função ( w Trabalhador ) Informações ( ) {
fmt. printf ( 'Eu sou %s. Eu sou um %s. \n ' , Em. nome , Em. trabalho )
}

tipo interface de pessoa {
Informações ( )
}
funcmain ( ) {
John := Trabalhador { Humano { 'John' } , 'trabalhador' }
Corça := Humano { 'Corça' }

John. Informações ( )
Corça. Informações ( )

estava pessoalmente

eu = John
eu. Informações ( )

eu = Corça
eu. Informações ( )
}

Nós criamos dois estruturas , Humano e Trabalhador , no código acima. As funções que imprimem as mensagens são então criadas. O estruturas são chamados no principal () função do Pessoa interface . Podemos ver que o Informações método foi implementado tanto pelo Trabalhador e a Humano , portanto a variável i com o tipo Pessoa interface funcionará corretamente e imprimirá a saída.





Saída



Ir tem uma abordagem única para encapsulamento . Encapsulamento é realizado na programação orientada a objetos convencional, tornando os campos privados e tornando-os acessíveis por meio de métodos getter e setter. Em Ir , encapsulamento é obtido usando nomes de campo em minúsculas, que só são visíveis dentro do mesmo pacote. Essa estratégia é mais direta e inequívoca, o que torna mais simples entender como o código se comporta e diminui a possibilidade de efeitos colaterais imprevistos.

Ir fornece uma forma simplificada de polimorfismo . A programação orientada a objetos tem um recurso chamado polimorfismo que permite que objetos de várias classes sejam tratados como instâncias da mesma classe. Ir não fornece a herança baseada em classe convencional, mas oferece suporte a interfaces, que podem ser usadas para especificar um conjunto de métodos que um struct deve implementar. Ir também oferece declarações de tipo, que permitem aos programadores examinar o conteúdo de uma variável de interface e obter 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 funcionalidades comparáveis ​​de maneira mais direta e leve. Ir ganhou popularidade entre os desenvolvedores que priorizam simplicidade, legibilidade e desempenho, adotando uma filosofia e gramática diferentes. Apesar de conhecer Go's metodologia pode levar algum tempo, suas características distintas e design resultam em código mais eficaz e sustentável.