Resumo dos Destaques dos Fundamentos de Go
Cada item de destaque das 9 páginas desta seção, reunido em uma única página e agrupado pela página de origem.
Busque em todas as páginas da documentação
Cada item de destaque das 9 páginas desta seção, reunido em uma única página e agrupado pela página de origem.
main produz um executável e deve definir o ponto de entrada func main()go build percorre as importações a partir de main e compila cada pacote necessário para o cache de compilaçãointernal/ de fora do módulo para encapsulamentoinit rodam antes de main na ordem de dependência para registro e configuraçãomain marca executáveis; go run . compila sem deixar um binário:= apenas dentro de funções; var funciona no nível do pacote0; bool para false; ponteiros, slices e mapas para niliota reinicia a cada bloco const e incrementa uma vez por linharange retorna o índice de byte e a rune; len conta bytes, não runesappend pode realocar quando a capacidade do array subjacente é excedida:= é idiomática em funções; var e const pertencem ao nível do pacoteconst devem ser computáveis em tempo de compilação: literais, aritmética ou sequências iota_ para descartar intencionalmente:= reutilizam nomes apenas no mesmo bloco quando pelo menos um é novo0, bool false, string vazia, refs nilnil adicionam e retornam comprimento zero, mas mapas nil entram em pânico na escritanil bloqueiam para sempre no envio, corrija com make ou verificação nilsync.Mutex está destravado e pronto para uso imediatonil é diferente de nil se contiver um nil tipado, verifique explicitamente[]byte para dados binários e []rune para operações indexadas por caracterelen(s) conta bytes UTF-8, não caracteres; use utf8.RuneCountInString em vez dissoint e uint depende da plataforma; use tipos dimensionados para serializaçãorange retorna o índice de byte e o valor da runeint32 envolve silenciosamente valores grandes; verifique os limites antes de converter==; 0.1+0.2 falha devido à perda de precisãolen, capappend cresce dobrando a capacidade quando len é igual a cap, potencialmente realocandonil entram em pânico na atribuição; use make para inicializar antes de escrever em um mapaappend sobrescreve elementos existentes; use slice completo ou copy para corrigirType.Field para acessarnil entra em pânico em chamadas de método promovidas sem inicialização& e desreferência * permitem o uso de ponteiros; sem aritmética de ponteirosnil entra em pânico; proteja com p != nil antes de usar *p&make([]T, 0, n) para reduzir alocações em loops intensivosmake ou literais; nunca atribua a mapas nillen(string) conta bytes, não caracteres; use utf8.RuneCountInString para texto visível ao usuárioappend, pois ele pode retornar um novo cabeçalho de sliceRevisado por Chris St. John·Última atualização: 18 de jul. de 2026