Cum să adăugați etichete Golang Build

Cum Sa Adaugati Etichete Golang Build



Etichetele de compilare în Go sunt o caracteristică puternică care ne permite să includem sau să excludem condiționat un anumit cod în timpul procesului de construire, pe baza unor constrângeri specifice de construire. Această flexibilitate ne permite să creăm versiuni specifice platformei pentru diferite sisteme de operare, arhitecturi sau alte cerințe specifice mediului. Etichetele de compilare sunt comentarii speciale care sunt adăugate la începutul unui fișier sursă, chiar deasupra declarației pachetului. Aceste etichete oferă instrucțiuni sistemului de compilare Go despre cum să gestioneze codul din acel fișier în timpul procesului de compilare.

Exemplul 1: Adăugați eticheta de compilare Golang pentru sistemul Linux

Pentru a viza sistemul de operare Linux, putem adăuga eticheta de compilare „// +build linux”.

// mergeți să construiți Linux

// +build linux

pachet principal

import 'fmt'

func principal () {

fmt . Println ( „Bună ziua exemplu de sistem Linux” )

}

Aici, setăm constrângerile de construire în Go care specifică că codul ar trebui să fie construit numai dacă sistemul țintă este Linux. După aceea, definim pachetul și importăm instrucțiunea necesară pentru cod. Apoi, intrăm în metoda main() unde tipărim mesajul folosind apelul „Println” din pachetul „fmt”.







Astfel, mesajul este afișat pe consolă cu succes pentru sistemul de operare Linux:





Exemplul 2: Adăugați eticheta de compilare Golang pentru sistemul Windows

Când vrem doar ca codul să se execute pe platforma Windows, folosim eticheta de compilare „// +build windows” la începutul fișierului. Din aceasta, ne putem asigura că codul este încorporat în versiune numai atunci când Windows este platforma dorită.





// +construiește ferestre

pachet principal

import 'fmt'

func principal () {

fmt . Println ( „Bună, exemplu Windows!” )

}

Aici, folosim constrângerea de construire „// +build windows” pentru a ne asigura că codul este compilat și executat numai la construirea pentru platforma Windows. După aceea, includem pachetul necesar pentru cod cu pachetul și modificatorul de import. Apoi vine funcția main() care folosește funcția println() pentru a tipări declarația atunci când construiește etichetele ferestrei în Golang.

Când construim și rulăm acest program pe un sistem Windows, afișează „Bună, exemplu Windows!” mesaj către consolă. Rețineți că programul nu va fi construit sau executat pe alte sisteme de operare din cauza constrângerii de construire.



Exemplul 3: Adăugați eticheta de compilare Golang pentru sistemul non-Windows

Dimpotrivă, dacă dorim să excludem codul atunci când construim pentru Windows, puteți folosi „!” semnul exclamării cu eticheta build.

// +construiți !windows

pachet principal

import 'fmt'

func principal () {

fmt . Println ( „Bună ziua, cu excepția Windows!” )

}

Aici, construim o directivă de constrângere care indică faptul că codul ar trebui să fie construit și executat pe alte platforme decât Windows. Semnul exclamării (!) înainte de Windows indică faptul că acest cod ar trebui inclus pentru toate platformele, cu excepția Windows. Apoi, procedăm cu același program ca în funcția anterioară, unde mai întâi adăugăm pachetele și apelăm funcția main() pentru a executa mesajul care este transmis în interiorul funcției println().

Astfel, rezultatul generează mesajul pe consolele sistemului de operare. Rețineți că nu se va executa pe sistemul de operare Windows din cauza constrângerii de construire:

Exemplul 4: Adăugați eticheta de construcție Golang cu logica SAU

Pentru a include codul atunci când vizam Windows SAU Linux, putem folosi eticheta de compilare „// +build windows Linux”.

// +construiește Windows Linux

pachet principal

import 'fmt'

func principal () {

fmt . Println ( „Hei, utilizatorii Windows sau Linux” )

}

Aici, aplicăm constrângerea de construire cu SAU logic care intenționează să fie construit atât pentru sistemele de operare Windows, cât și pentru Linux. Linia „// +build windows Linux” specifică faptul că acest fișier ar trebui inclus în versiune atunci când platforma țintă este Windows sau Linux. Apoi, importăm pachetul „fmt” din biblioteca standard Go, care oferă funcționalitatea de bază de intrare și ieșire. În funcția principală, imprimăm instrucțiunea de șir „Hei, Windows sau Linux Users” folosind funcția Println() din pachetul „fmt”.

Prin urmare, rezultatul este preluat în cele ce urmează. Același mesaj este generat indiferent dacă folosim sistemul de operare Windows sau Linux:

Exemplul 5: Adăugați eticheta de construcție Golang cu logica AND

Putem specifica mai multe etichete de construcție pentru a crea condiții mai complexe. Comanda „// +build windows,linux” poate fi folosită pentru a genera un cod atât pentru Linux, cât și pentru Windows.

// +build windows,386

pachet principal

import 'fmt'

func principal () {

fmt . Println ( „Acesta este Windows pe 32 de biți” )

}

Aici, constrângerea de compilare care este definită este „// +build windows,386”, care specifică faptul că fișierul Go ar trebui să fie inclus în compilare atunci când platforma țintă este un Windows pe 32 de biți. Rețineți că folosim virgulă „,” între Windows și 386, care acționează ca operator logic AND. Aceasta înseamnă că ambele condiții trebuie îndeplinite pentru ca codul să fie inclus în build.

Apoi, similar cu exemplul anterior, importăm pachetul „fmt” din biblioteca standard Go pentru a folosi funcția Println() pentru ieșire. Avem funcția main() a programului în care instrucțiunea este transmisă ca argument funcției println().

Când construim și rulăm acest program pe un sistem Windows pe 32 de biți, acesta afișează mesajul specificat ca rezultat. Cu toate acestea, dacă încercăm să-l construim și să-l rulăm pe un alt sistem de operare sau arhitectură, nu va fi inclus în build:

Exemplul 6: Adăugați eticheta de construcție Golang pentru o funcție specifică

Mai mult, etichetele de compilare pot fi aplicate și unor funcții specifice dintr-un fișier. Din cauza constrângerilor de construcție, acum putem include sau elimina în mod condiționat funcții specifice.

pachet principal

import 'fmt'

func principal () {

fmt . Println ( 'Bună, bucură-te!' )

printWindowsMessage ()

}

// +construiește ferestre

func printWindowsMessage () {

fmt . Println ( „Salut din sistemul de operare Windows” )

}

Aici, trecem acum la metoda main() care folosește metoda Println() furnizată de pachetul „fmt” pentru a imprima mesajul de la început. Apoi, implementăm funcția printWindowsMessage() sub funcția main() și specificăm constrângerea de construire „// +build windows”. Acest lucru indică faptul că funcția este inclusă în versiune numai când platforma țintă este Windows.

În cele din urmă, setăm funcția printWindowsMessage() să imprime mesajul specificat „Hello From Windows Operating System” folosind funcția Println().

Astfel, este preluată rezultatul care afișează atât mesajul general, cât și mesajul specific platformei. Rețineți că dacă îl construim și îl rulăm pe un alt sistem de operare, funcția printWindowsMessage() nu va fi inclusă în build și va fi afișat doar mesajul general:

Concluzie

Adăugarea etichetelor de compilare în Go oferă posibilitatea de a personaliza includerea codului în timpul procesului de compilare. Prin valorificarea etichetelor de build, putem crea build-uri specifice platformei, putem optimiza codul pentru diferite arhitecturi și chiar include în mod condiționat funcții sau caracteristici specifice.