O intuito desse projeto é estudar #golang, documentei passo a passo do meu aprendizado aqui.
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/