Analizador de etiquetas de compilación de Go / compilación condicional
Analiza y estudia las directivas //go:build y // +build de Go en tu código fuente. Visualiza para qué combinaciones de SO/arquitectura compila el código con una matriz de compatibilidad interactiva. Admite expresiones complejas, etiquetas personalizadas y evaluación en tiempo real. Todo el procesamiento es local y 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
Características clave del analizador de etiquetas de compilación de Go
- Soporte de doble sintaxis: analiza tanto //go:build (Go 1.17+) como las restricciones heredadas // +build. Muestra ambas directivas en paralelo e indica cuándo go:build anula +build.
- Matriz de compatibilidad SO/arquitectura: visualiza la evaluación de las etiquetas en 32 combinaciones comunes de SO/arquitectura, como linux, darwin, windows, freebsd, android, ios y más. Estado activo/inactivo con código de color para una lectura instantánea.
- Evaluación de expresiones en vivo: evalúa expresiones complejas de build tags con operadores AND (&&), OR (||), NOT (!), grupos entre paréntesis y etiquetas personalizadas. Activa los selectores de SO y arquitectura para ver en tiempo real qué rutas de código se activan.
- Soporte de etiquetas personalizadas: define etiquetas propias como cgo, race o flags de función específicos del proyecto. El analizador evalúa cómo interactúan las etiquetas personalizadas con las restricciones de plataforma de la expresión.
¿Quién se beneficia del analizador de etiquetas de compilación de Go?
- Desarrollo de bibliotecas multiplataforma: analiza los build tags de bibliotecas Go multiplataforma para asegurar que todas las combinaciones de SO/arquitectura estén cubiertas. Detecta restricciones de compilación ausentes que podrían causar fallos en plataformas concretas.
- Depuración de fallos de compilación: cuando un proyecto Go compila en tu máquina pero falla en CI, pega el código en este analizador para verificar las expresiones de build tags. Comprueba si el SO/arquitectura objetivo se incluye o excluye correctamente.
- Aprender las restricciones de compilación de Go: ¿nuevo en la compilación condicional de Go? Experimenta con la sintaxis //go:build y // +build para entender cómo funcionan juntos los operadores AND, OR y NOT. Observa cómo interactúan las convenciones de nombres de archivo con los build tags.
- Revisión y auditoría de código: durante una revisión, pega archivos Go con compilación condicional para verificar que el autor pretendía el conjunto correcto de plataformas objetivo. Detecta etiquetas mal delimitadas antes de que lleguen a producción.
- Migración de +build a go:build: al actualizar código Go antiguo de // +build a la sintaxis //go:build, usa el analizador para verificar que las expresiones migradas producen la misma cobertura de plataformas. El analizador muestra ambas directivas en paralelo.
- Revisión de contribuciones a código abierto: al contribuir a grandes proyectos Go con matrices de compilación complejas, usa esta herramienta para entender qué build tags controlan qué funciones. Determina si tu cambio afecta solo a plataformas específicas.
Preguntas frecuentes
Una etiqueta de compilación de Go (o restricción de compilación) es una directiva en forma de comentario al inicio de un archivo fuente Go que controla si el archivo se incluye en la compilación. Permite escribir código específico de plataforma, activar funciones opcionales o gestionar dependencias condicionales. Las etiquetas de compilación se evalúan durante la compilación y deben cumplirse para que el archivo se compile.
La directiva //go:build (introducida en Go 1.17) es la sintaxis moderna con expresiones booleanas al estilo Go. La sintaxis // +build es el formato heredado que usa lógica OR separada por espacios y AND separada por comas. Cuando ambas están presentes en un archivo, el compilador usa //go:build e ignora // +build.
Go también usa convenciones de nombres de archivo para la compilación condicional. Los archivos que terminan en _GOOS.go (p. ej., foo_linux.go) se restringen automáticamente a ese SO. De forma similar, _GOARCH.go (p. ej., foo_amd64.go) restringe a esa arquitectura, y _GOOS_GOARCH.go (p. ej., foo_linux_amd64.go) restringe a ambas. Estas etiquetas inferidas se muestran junto a las directivas de build tag explícitas.
Sí. El analizador admite por completo expresiones de build tags de Go con operadores AND (&&), OR (||), NOT (!) y agrupación entre paréntesis. Expresiones complejas como (linux && amd64) || (darwin && !arm) se analizan y evalúan correctamente. También puedes añadir etiquetas personalizadas para probar su interacción con las restricciones existentes.
El analizador evalúa las etiquetas de compilación frente a 32 combinaciones comunes de SO/arquitectura que abarcan 8 sistemas operativos (linux, darwin, windows, freebsd, netbsd, openbsd, android, ios) y 4 arquitecturas (amd64, arm64, 386, arm). También puedes seleccionar manualmente cualquiera de los 18 valores de SO y 12 valores de arquitectura que admite Go.
Las etiquetas personalizadas son identificadores propios del proyecto como cgo, race o tus propios flags de función (p. ej., enterprise, experimental). Se establecen en tiempo de compilación con go build -tags. El campo de etiquetas personalizadas de este analizador te permite simular qué archivos se compilarían cuando esas etiquetas estén activas.
Sí, por completo. Todo el análisis de etiquetas de compilación ocurre localmente en tu navegador. Tu código fuente Go nunca sale de tu dispositivo ni se envía a ningún servidor. No se requiere cuenta, no se almacenan datos y no hay seguimiento.
El analizador te ayuda a verificar conversiones mostrando ambas directivas en paralelo. Para la conversión real, Go ofrece la herramienta gofmt -r con una regla especial de reescritura de build tags. La conversión básica transforma grupos separados por espacios (OR en +build) en operandos unidos por &&, y elementos separados por comas (AND en +build) en operandos unidos por ||.
Sí, 100 % gratis. No hay registro, ni plan premium, ni límites de uso, ni topes de tamaño de archivo. La herramienta funciona por completo en tu navegador y siempre será gratis en Aback Tools.