ignacio83 / oop-or-almost-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

oop-or-almost-go

O intuito desse projeto é estudar #golang, documentei passo a passo do meu aprendizado aqui.

Aprendendo #golang

Dia 6

Seguindo o tutorial em https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/arrays-and-slices li novamente sobre slices e arrays e fiz alguns exercícios.

Após isso fui para o guia https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/structs-methods-and-interfaces. Como trabalho com java a muitos anos, estava ansioso por entender como #golang trabalha com programação orientada a objetos. E aprendi que #golang não suporta exatamente orientação objetos, não é possível ter classes, construtores, sobrecarregar funções ou métodos e não existe herança, mas existe um conceito interessante de Interface implicita: https://link.medium.com/MBcAoWrESgb

Sem herança somos obrigados a usar composição, mas pera, um famoso livro de 1994 já dizia isso: https://www.amazon.com.br/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8

Com relação à maneira como os métodos são declarados em um struct, esta não lembra em nada C++ ou Java, alguns artigos apontam similaridade com Javascript e a declaração de métodos com prototype: https://flaviocopes.com/golang-is-go-object-oriented/

About


Languages

Language:Go 100.0%