Perbezaan Antara //go:build dan // build Directive
Arahan //go:build ialah arahan kompilasi bersyarat baharu diperkenalkan dalam Go 1.17, bertujuan untuk menggantikan arahan binaan //. Walaupun kedua-dua arahan membenarkan anda untuk menentukan syarat di mana fail harus disertakan dalam pakej, //go:build menawarkan beberapa penambahbaikan utama:
-
Ketekalan: The // sintaks go:build adalah konsisten dengan arahan dan pragma Go sedia ada yang lain, seperti //go:generate.
-
Dipertingkat Ungkapan: //go:build menyokong ungkapan boolean standard (cth., //go:build foo && bar), manakala // build menggunakan sintaks yang kurang intuitif untuk AND (koma) dan OR (ruang).
-
Pemformatan Kod: Arahan //go:build diformat secara automatik oleh gofmt. Ini mengelakkan kesilapan biasa, seperti tidak meninggalkan garis kosong antara arahan dan penyataan pakej.
Go 1.18 dinaikkan //go:build sebagai arahan pilihan, dengan rancangan untuk mengalih keluar secara beransur-ansur // build garisan. Peralihan antara dua arahan dikendalikan seperti berikut:
- Dalam Go 1.18 dan seterusnya, //go:build ialah arahan kekangan binaan utama.
- Jika fail tidak mempunyai // arahan go:build, sebarang // arahan binaan masih akan digunakan.
- Jika fail mengandungi kedua-dua //go:build dan // bina arahan, //go:build akan dianggap sebagai sumber kebenaran, dan gofmt akan mengemas kini // bina untuk dipadankan.
Atas ialah kandungan terperinci Pergi `//go:build` 1.17: Bagaimanakah Ia Berbeza daripada `// build` untuk Kompilasi Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!