Go — Tipos, structs e métodos

TL;DR

Galho 2 da trilha Go — o modelo de tipos que substitui a “classe”. 8 notas em 3 fases: structs, tipos nomeados e métodos (Iniciado); a decisão value vs pointer receiver, composição por embedding e o idioma do construtor (Adepto); struct tags/reflection e design de tipos idiomático (Magus). Ao fim, você modela dados e comportamento em Go sem herança — só composição.

Aqui o Go mostra sua aposta central de design: sem classes, sem herança — dados vivem em structs, comportamento vem de métodos com receiver, e reúso vem de composição por embedding. Ver roadmap pro estado das notas.

Notas por fase

Iniciado — os blocos de construção

  1. 01 - Structs — definição e inicialização — declarar struct, literais, zero value, aninhados, comparabilidade
  2. 02 - Tipos nomeados e definições de tipotype T Underlying, type safety, aliases vs defined types
  3. 03 - Métodos — funções com receiver, métodos em qualquer tipo nomeado, method value/expression

Adepto — modelando comportamento

  1. 04 - Value vs pointer receiver — cópia vs mutação, method sets, addressability, regra de consistência
  2. 05 - Composição por embedding — campo anônimo, promoção de métodos, composição sobre herança
  3. 06 - O idioma do construtor — sem construtores; NewXxx, zero value útil, functional options (intro)

Magus — design de tipos

  1. 07 - Struct tags e reflection básica — tags, reflect, o caso encoding/json, quando não refletir
  2. 08 - Design de tipos idiomático — value vs reference semantics, imutabilidade por convenção, struct{} vazio

Veja também

  • Trilha Go — índice geral (21 galhos + capstone)
  • Galho anterior: Fundamentos e sintaxe
  • Próximo galho: Interfaces e composição (galho 3) — onde o comportamento vira contrato desacoplado do tipo concreto