Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Berjaya Menggunakan Kompilasi Bersyarat dengan '// build' dalam Go?

Bagaimanakah Saya Boleh Berjaya Menggunakan Kompilasi Bersyarat dengan '// build' dalam Go?

DDD
DDDasal
2024-12-14 09:04:11170semak imbas

How Can I Successfully Use Conditional Compilation with

Kompilasi Bersyarat di Golang

Anda menyebut menghadapi masalah dengan kompilasi bersyarat dalam Go. Berikut ialah penjelasan terperinci tentang kekangan "// build" dan bendera "-tags", bersama-sama dengan penyelesaian kepada masalah anda.

Kekangan "// build" memberitahu pengkompil yang membina tag untuk digunakan semasa menyusun fail tersebut. Dalam contoh anda, anda telah menggunakan "// build main1" untuk main1.go dan "// build main2" untuk main2.go. Ini bermakna bahawa fail ini hanya akan disusun apabila teg binaan yang sepadan ditentukan.

Untuk menyusun kod anda dengan teg binaan yang dikehendaki, anda boleh menggunakan bendera "-tags". Contohnya, untuk menyusun main1.go sahaja, anda boleh menjalankan:

$ go build -tags main1

Walau bagaimanapun, ralat yang anda hadapi menunjukkan bahawa anda mungkin mengalami butiran kecil yang penting untuk penyusunan bersyarat dalam Go: anda mesti mengikut baris "// build XXX" dengan baris kosong. Ini tidak didokumenkan secara eksplisit, tetapi ia jelas dalam kod sumber.

Berikut ialah versi ubah suai kod anda dengan baris kosong ditambah:

main1.go

// +build main1

package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 1")
}

main2.go

// +build main2

package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 2")
}

Sekarang, jalankan "go build -tags main1" hanya akan menyusun main1.go, seperti yang dijangkakan. Dengan mengikuti peraturan ini, anda boleh menggunakan kompilasi bersyarat dengan berkesan di Golang untuk menyertakan atau mengecualikan fail secara terpilih berdasarkan teg binaan yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Menggunakan Kompilasi Bersyarat dengan '// build' dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn