Analisator Tag Build Go / Kompilasi Bersyarat
Uraikan dan analisis direktif //go:build dan // +build dari kode sumber Go Anda. Visualisasikan kombinasi OS/arsitektur mana yang dapat dikompilasi dengan matriks kompatibilitas interaktif. Mendukung ekspresi kompleks, tag kustom, dan evaluasi real-time. Semua pemrosesan bersifat lokal dan privat.
//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
Fitur utama analisator build tag Go
- Dukungan sintaks tag ganda: menguraikan //go:build (Go 1.17+) maupun batasan lama // +build. Menampilkan kedua direktif berdampingan dan menandai saat go:build menimpa +build.
- Matriks kompatibilitas OS/arsitektur: visualisasikan evaluasi build tag pada 32 kombinasi OS/arsitektur umum termasuk linux, darwin, windows, freebsd, android, ios, dan lainnya. Status aktif/nonaktif berkode warna agar mudah dibaca seketika.
- Evaluasi ekspresi langsung: evaluasi ekspresi build tag kompleks dengan operator AND (&&), OR (||), NOT (!), grup tanda kurung, dan tag kustom. Ubah pemilih OS dan arsitektur untuk melihat jalur kode mana yang aktif secara real-time.
- Dukungan tag kustom: tentukan tag sendiri seperti cgo, race, atau flag fitur khusus proyek. Analisator mengevaluasi bagaimana tag kustom berinteraksi dengan batasan berbasis platform dalam ekspresi.
Siapa yang diuntungkan oleh analisator build tag Go?
- Pengembangan pustaka lintas platform: analisis build tag pada pustaka Go lintas platform untuk memastikan semua kombinasi OS/arsitektur tercakup. Temukan batasan build yang hilang yang bisa menyebabkan kegagalan kompilasi di platform tertentu.
- Men-debug kegagalan build: ketika proyek Go berhasil dikompilasi di mesin Anda tetapi gagal di CI, tempel kode ke analisator ini untuk memverifikasi ekspresi build tag. Periksa apakah OS/arsitektur target sudah benar disertakan atau dikecualikan.
- Mempelajari batasan build Go: baru mengenal kompilasi bersyarat Go? Cobalah sintaks //go:build dan // +build untuk memahami cara kerja operator AND, OR, dan NOT. Lihat bagaimana konvensi nama file berinteraksi dengan build tag.
- Tinjauan & audit kode: saat meninjau kode, tempel file Go dengan kompilasi bersyarat untuk memverifikasi penulis memaksudkan set platform target yang tepat. Tangkap build tag yang salah cakupan sebelum masuk produksi.
- Migrasi dari +build ke go:build: saat meningkatkan kode Go lama dari // +build ke sintaks //go:build, gunakan analisator untuk memverifikasi ekspresi hasil migrasi menghasilkan cakupan platform yang sama. Analisator menampilkan kedua direktif berdampingan.
- Tinjauan kontribusi open source: saat berkontribusi ke proyek Go besar dengan matriks build yang kompleks, gunakan alat ini untuk memahami build tag mana yang mengendalikan fitur mana. Tentukan apakah perubahan Anda hanya memengaruhi platform tertentu.
Pertanyaan yang Sering Diajukan
Build tag Go (atau batasan build) adalah direktif berupa komentar di bagian atas file sumber Go yang menentukan apakah file itu disertakan dalam kompilasi. Ini memungkinkan penulisan kode khusus platform, mengaktifkan fitur opsional, atau mengelola dependensi bersyarat. Build tag dievaluasi saat kompilasi dan harus terpenuhi agar file dikompilasi.
Direktif //go:build (diperkenalkan di Go 1.17) adalah sintaks modern dengan ekspresi boolean bergaya Go. Sintaks // +build adalah format lama yang memakai logika OR yang dipisahkan spasi dan AND yang dipisahkan koma. Bila keduanya ada dalam satu file, kompilator memakai //go:build dan mengabaikan // +build.
Go juga memakai konvensi nama file untuk kompilasi bersyarat. File yang berakhiran _GOOS.go (mis., foo_linux.go) otomatis dibatasi untuk OS tersebut. Serupa, _GOARCH.go (mis., foo_amd64.go) membatasi pada arsitektur itu, dan _GOOS_GOARCH.go (mis., foo_linux_amd64.go) membatasi keduanya. Tag hasil inferensi ini ditampilkan bersama direktif build tag eksplisit.
Bisa. Analisator sepenuhnya mendukung ekspresi build tag Go dengan operator AND (&&), OR (||), NOT (!), dan pengelompokan tanda kurung. Ekspresi kompleks seperti (linux && amd64) || (darwin && !arm) diuraikan dan dievaluasi dengan benar. Tag kustom juga bisa ditambahkan untuk menguji interaksinya dengan batasan yang ada.
Analisator mengevaluasi build tag terhadap 32 kombinasi OS/arsitektur umum yang mencakup 8 sistem operasi (linux, darwin, windows, freebsd, netbsd, openbsd, android, ios) dan 4 arsitektur (amd64, arm64, 386, arm). Anda juga bisa memilih secara manual salah satu dari 18 nilai OS dan 12 nilai arsitektur yang didukung Go.
Tag kustom adalah pengenal khusus proyek seperti cgo, race, atau flag fitur Anda sendiri (mis., enterprise, experimental). Tag ini ditetapkan saat kompilasi dengan go build -tags. Kolom tag kustom di analisator ini memungkinkan Anda menyimulasikan file mana yang akan dikompilasi saat tag tersebut aktif.
Ya, sepenuhnya. Semua analisis build tag terjadi secara lokal di browser Anda. Kode sumber Go Anda tidak pernah meninggalkan perangkat dan tidak pernah dikirim ke server mana pun. Tidak perlu akun, tidak ada data yang disimpan, dan tidak ada pelacakan.
Analisator membantu Anda memverifikasi konversi dengan menampilkan kedua direktif berdampingan. Untuk konversi sebenarnya, Go menyediakan alat gofmt -r dengan aturan penulisan ulang build tag khusus. Konversi dasarnya mengubah grup yang dipisahkan spasi (OR pada +build) menjadi operand yang dihubungkan &&, dan item yang dipisahkan koma (AND pada +build) menjadi operand yang dihubungkan ||.
Ya, 100 % gratis. Tanpa pendaftaran, tier premium, batas penggunaan, maupun batas ukuran file. Alat ini berjalan sepenuhnya di browser Anda dan akan selalu gratis di Aback Tools.