Armadilha de Incorporação de Struct em Go: Campos Ambíguos

2025-09-22

A incorporação de structs em Go, embora poderosa para compor tipos, apresenta um potencial problema. Quando structs incorporadas compartilham nomes de campos, como várias structs incorporadas tendo um campo `URL`, o compilador prioriza inesperadamente o campo menos aninhado. Este código demonstra essa questão sutil, imprimindo `abc.com` em vez de um erro de compilação como seria de esperar. Tenha cuidado ao usar a incorporação de structs para evitar nomes de campos ambíguos e possíveis surpresas em tempo de execução.

Leia mais

O Design do Go: Uma Troca Deliberada

2025-01-31

Este artigo mergulha na filosofia de design da linguagem de programação Go, explorando seus pontos fortes e fracos. Nascido no Google, o Go tinha como objetivo simplificar a escrita e a manutenção de códigos de servidores concorrentes em larga escala. O autor analisa os recursos do Go - sua API de sistema de arquivos simplificada, falta de sobrecarga de operadores, tratamento de erros explícito e interoperabilidade com outras linguagens - para explicar as compensações por trás de suas escolhas de design. Embora criticado por aspectos como sua antiga falta de genéricos e suporte inferior ao Windows, o autor argumenta que essas são compensações conscientes feitas para alcançar seus objetivos de design primários, tornando o Go, em última análise, uma linguagem eficiente e fácil de usar para projetos de engenharia de grande porte.

Leia mais