O que é uma classe e um objeto em Golang?

O que é uma classe e um objeto em Golang?
Idéias fundamentais na programação de computadores como aula e objeto Forneça uma estrutura para agrupar o código em módulos reutilizáveis ​​e adaptáveis. Golang tem sua própria sintaxe, características e filosofia distintas. Em contraste com outros idiomas, a solução não é tão óbvia quando se trata dos conceitos de aula e objeto em Ir. Neste artigo, exploraremos se GO tem um conceito de aula e um objeto e como 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 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 principal
importar "fmt"
Tipo Human Struct
String de nome

Tipo de estrutura de trabalhador
Humano
String de trabalho

func (h humano) info ()
fmt.Printf ("eu sou %s \ n", h.nome)

func (trabalhador w) info ()
fmt.Printf ("Eu sou %s. Eu sou como.\ n ", w.nome, w.trabalho)

Interface da pessoa do tipo
Info ()

funcmain ()
John: = trabalhador humano "John", "trabalhador"
Corça: = humano "doe"
John.Info ()
Corça.Info ()
var i pessoa
i = John
eu.Info ()
eu = doe
eu.Info ()

Nó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.