Analisador de tags de compilação Go / compilação condicional
Analise e estude as diretivas //go:build e // +build do Go no seu código-fonte. Visualize para quais combinações de SO/arquitetura o código compila com uma matriz de compatibilidade interativa. Suporta expressões complexas, tags personalizadas e avaliação em tempo real. Todo o processamento é local e privado.
//go:build and// +build syntax.Paste Go source code with build tags to analyze conditional compilation paths
Supports both//go:build and// +build directives
Click Load example to try with sample code
Principais recursos do analisador de build tags do Go
- Suporte a sintaxe dupla: analisa tanto //go:build (Go 1.17+) quanto as restrições legadas // +build. Mostra as duas diretivas lado a lado e indica quando go:build substitui +build.
- Matriz de compatibilidade SO/arquitetura: visualize a avaliação das build tags em 32 combinações comuns de SO/arquitetura, incluindo linux, darwin, windows, freebsd, android, ios e mais. Status ativo/inativo com código de cores para leitura instantânea.
- Avaliação de expressões ao vivo: avalie expressões complexas de build tags com operadores AND (&&), OR (||), NOT (!), grupos entre parênteses e tags personalizadas. Alterne os seletores de SO e arquitetura para ver em tempo real quais caminhos de código são ativados.
- Suporte a tags personalizadas: defina tags próprias como cgo, race ou flags de recurso específicos do projeto. O analisador avalia como as tags personalizadas interagem com as restrições de plataforma na expressão.
Quem se beneficia do analisador de build tags do Go?
- Desenvolvimento de bibliotecas multiplataforma: analise build tags em bibliotecas Go multiplataforma para garantir que todas as combinações de SO/arquitetura estejam cobertas. Identifique restrições de compilação ausentes que poderiam causar falhas em plataformas específicas.
- Depuração de falhas de compilação: quando um projeto Go compila na sua máquina mas falha na CI, cole o código neste analisador para verificar as expressões de build tags. Verifique se o SO/arquitetura de destino está corretamente incluído ou excluído.
- Aprender as restrições de compilação do Go: novo em compilação condicional no Go? Experimente a sintaxe //go:build e // +build para entender como os operadores AND, OR e NOT funcionam juntos. Veja como as convenções de nome de arquivo interagem com as build tags.
- Revisão e auditoria de código: durante a revisão, cole arquivos Go com compilação condicional para verificar se o autor pretendia o conjunto correto de plataformas de destino. Detecte build tags mal delimitadas antes que cheguem à produção.
- Migração de +build para go:build: ao atualizar código Go antigo de // +build para a sintaxe //go:build, use o analisador para verificar se as expressões migradas produzem a mesma cobertura de plataformas. O analisador mostra as duas diretivas lado a lado.
- Revisão de contribuições open source: ao contribuir com grandes projetos Go que têm matrizes de compilação complexas, use esta ferramenta para entender quais build tags controlam quais recursos. Determine se sua alteração afeta apenas plataformas específicas.
Perguntas frequentes
Uma build tag do Go (ou restrição de compilação) é uma diretiva em forma de comentário no topo de um arquivo-fonte Go que controla se o arquivo é incluído na compilação. Ela permite escrever código específico de plataforma, habilitar recursos opcionais ou gerenciar dependências condicionais. As build tags são avaliadas durante a compilação e precisam ser satisfeitas para que o arquivo seja compilado.
A diretiva //go:build (introduzida no Go 1.17) é a sintaxe moderna, com expressões booleanas no estilo Go. A sintaxe // +build é o formato legado, que usa OR separado por espaços e AND separado por vírgulas. Quando ambas estão presentes no arquivo, o compilador usa //go:build e ignora // +build.
O Go também usa convenções de nome de arquivo para compilação condicional. Arquivos terminados em _GOOS.go (por ex., foo_linux.go) são automaticamente restritos a esse SO. Do mesmo modo, _GOARCH.go (por ex., foo_amd64.go) restringe a essa arquitetura, e _GOOS_GOARCH.go (por ex., foo_linux_amd64.go) restringe a ambas. Essas tags inferidas são exibidas ao lado das diretivas de build tag explícitas.
Sim. O analisador dá suporte total a expressões de build tags do Go com operadores AND (&&), OR (||), NOT (!) e agrupamento entre parênteses. Expressões complexas como (linux && amd64) || (darwin && !arm) são analisadas e avaliadas corretamente. Tags personalizadas também podem ser adicionadas para testar a interação com as restrições existentes.
O analisador avalia as build tags em 32 combinações comuns de SO/arquitetura, abrangendo 8 sistemas operacionais (linux, darwin, windows, freebsd, netbsd, openbsd, android, ios) e 4 arquiteturas (amd64, arm64, 386, arm). Você também pode selecionar manualmente qualquer um dos 18 valores de SO e 12 valores de arquitetura suportados pelo Go.
Tags personalizadas são identificadores específicos do projeto, como cgo, race ou seus próprios flags de recurso (por ex., enterprise, experimental). Elas são definidas em tempo de compilação com go build -tags. O campo de tags personalizadas deste analisador permite simular quais arquivos seriam compilados quando essas tags estão ativas.
Sim, totalmente. Toda a análise de build tags acontece localmente no seu navegador. Seu código-fonte Go nunca sai do seu dispositivo e nunca é enviado a servidor algum. Nenhuma conta é necessária, nenhum dado é armazenado e não há rastreamento.
O analisador ajuda a verificar conversões mostrando as duas diretivas lado a lado. Para a conversão em si, o Go oferece a ferramenta gofmt -r com uma regra especial de reescrita de build tags. A conversão básica transforma grupos separados por espaços (OR no +build) em operandos ligados por &&, e itens separados por vírgulas (AND no +build) em operandos ligados por ||.
Sim, 100 % grátis. Sem cadastro, sem plano premium, sem limites de uso e sem limite de tamanho de arquivo. A ferramenta roda inteiramente no seu navegador e sempre será gratuita no Aback Tools.