Apabila membangunkan perpustakaan merentas platform dalam Go, mungkin terdapat keadaan di mana anda perlu menggunakan kaedah yang berbeza untuk sistem pengendalian yang berbeza. Ini menimbulkan persoalan tentang cara mengatur proses binaan dengan cekap dalam senario sedemikian.
Satu pendekatan ialah menggunakan kekangan binaan dan nama fail.
Kekangan binaan membenarkan anda untuk memasukkan atau mengecualikan kod secara bersyarat berdasarkan syarat binaan tertentu. Sebagai contoh, kekangan binaan berikut termasuk kod untuk sistem pengendalian seperti Unix:
<code class="go">// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris</code>
Kaedah lain ialah menggunakan nama fail untuk membezakan kod untuk platform yang berbeza. Contohnya:
Pertimbangkan contoh berikut daripada pustaka standard Go:
<code class="go">// stat_unix.go // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris package stat func unixImplementation() {}</code>
<code class="go">// stat_windows.go // +build windows package stat func windowsImplementation() {}</code>
Dalam contoh ini, fail stat_unix.go disertakan secara bersyarat untuk sistem pengendalian seperti Unix, manakala stat_windows.go disertakan sahaja untuk Windows.
Alat Go dan perpustakaan standard pada asalnya bergantung pada penamaan fail untuk kod khusus platform. Walau bagaimanapun, apabila keperluan menjadi lebih kompleks, kekangan binaan telah menjadi pendekatan pilihan.
Atas ialah kandungan terperinci Bagaimana untuk Membezakan Kod untuk Linux dan Windows dalam Go menggunakan Kekangan Binaan dan Nama Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!