Categoria: Go

Go nasceu no Google para escrever software de servidor que compila rápido e escala bem. Aposta na simplicidade — poucas palavras-chave, biblioteca padrão robusta e concorrência nativa por goroutines e canais — e entrega um binário único, sem dependências, o que a tornou padrão em ferramentas de infraestrutura como Docker e Kubernetes. A documentação oficial fica em go.dev.

Go

Métodos

Nesta aula, você aprenderá sobre métodos em Go, incluindo a diferença entre receivers por valor e por ponteiro, quando usar cada um, e como definir métodos em tipos próprios. Serão apresentados exemplos práticos para consolidar o entendimento.

Lido
Go

Strings, bytes e runes

Nesta aula, exploramos como Go lida com strings, bytes e runes, enfatizando a codificação UTF-8. Aprendemos a iterar sobre strings com range, usar o pacote strings para manipulação e o pacote strconv para conversões.

Lido
Go

Structs

Nesta aula, você aprenderá sobre structs em Go, incluindo definição, campos, inicialização e structs anônimas. Structs são tipos de dados compostos que permitem agrupar campos de diferentes tipos, sendo fundamentais para modelar dados complexos.

Lido
Go

A interface Stringer e fmt

Nesta aula, exploramos a interface Stringer do pacote fmt, que permite controlar a representação textual de tipos personalizados. Aprendemos sobre os verbos de formatação, como implementar o método String() e como usar a interface para debug.

Lido
Go

Embedding (composição)

Esta aula aborda embedding (composição) em Go, um mecanismo que permite reutilizar campos e métodos de tipos aninhados. Serão explorados embedding de structs, embedding de interfaces, promoção de métodos e a diferença entre composição e herança.

Lido
Go

Ponteiros

Nesta aula, exploramos ponteiros em Go: os operadores & e *, a função new, nil pointers e as razões pelas quais Go adota ponteiros de forma segura. Aprenda a manipular referências a dados sem os riscos de aritmética de ponteiros.

Lido
Go

Interfaces avançado

Esta aula aprofunda o uso de interfaces em Go, abordando type assertions, type switches, composição de interfaces e boas práticas. Você aprenderá a verificar tipos dinamicamente, combinar interfaces e escrever código mais flexível e seguro.

Lido
Go

Interfaces

Esta aula aborda interfaces em Go, incluindo definição, implementação implícita, interface vazia (any) e polimorfismo. Você aprenderá como as interfaces permitem escrever código flexível e reutilizável, com exemplos práticos e exercícios.

Lido
Go

Erros avançado

Nesta aula avançada sobre erros em Go, exploramos o wrapping de erros com %w, as funções errors.Is e errors.As para comparação e desempacotamento, a criação de erros customizados com structs, e o padrão de erros sentinela. Com exemplos práticos, você aprenderá a construir e gerenciar hierarquias de erros de forma robusta.

Lido
Go

Tratamento de erros

Nesta aula, exploramos o tratamento de erros em Go, que é explícito e baseado no tipo error. Aprendemos a usar a verificação if err != nil, criar erros com errors.New e fmt.Errorf, e seguir as práticas idiomáticas da linguagem.

Lido
Go

Goroutines

Esta aula apresenta as goroutines, a unidade fundamental de concorrência leve em Go. Você aprenderá como criar goroutines com a palavra-chave 'go', entenderá como elas se comparam a threads do sistema operacional e explorará seu ciclo de vida, incluindo sincronização básica com WaitGroups.

Lido
Go

Channels

Esta aula aborda channels em Go, um mecanismo de comunicação entre goroutines. Você aprenderá a criar channels, enviar e receber dados, usar buffers e controlar a direção dos channels para concorrência segura.

Lido