Hur man lägger till Golang Build-taggar

Hur Man Lagger Till Golang Build Taggar



Byggtaggar i Go är en kraftfull funktion som låter oss villkorligt inkludera eller utesluta en viss kod under byggprocessen baserat på specifika byggbegränsningar. Denna flexibilitet gör det möjligt för oss att skapa plattformsspecifika byggen för olika operativsystem, arkitekturer eller andra miljöspecifika krav. Byggtaggar är speciella kommentarer som läggs till i början av en källfil, precis ovanför paketdeklarationen. Dessa taggar ger instruktioner till Go build-systemet om hur man hanterar koden i den filen under kompileringsprocessen.

Exempel 1: Lägg till Golang Build-taggen för Linux-system

För att rikta in oss på Linux-operativsystemet kan vi lägga till byggtaggen '// +build linux'.

//bygg linux

// +bygg linux

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Hej Linux-systemexempel' )

}

Här ställer vi in ​​byggbegränsningarna i Go som anger att koden endast ska byggas om målsystemet är Linux. Efter det definierar vi paketet och importerar den nödvändiga satsen för koden. Sedan anger vi main()-metoden där vi skriver ut meddelandet med 'Println'-anropet från 'fmt'-paketet.







Således visas meddelandet på konsolen framgångsrikt för operativsystemet Linux:





Exempel 2: Lägg till Golang Build-taggen för Windows System

När vi bara vill att koden ska köras på Windows-plattformen använder vi byggtaggen '// +build windows' i början av filen. Utifrån det kan vi se till att koden bara införlivas i byggnaden när Windows är den avsedda plattformen.





// +bygga fönster

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Hej, Windows-exempel!' )

}

Här använder vi byggbegränsningen '// +build windows' för att säkerställa att koden endast kompileras och exekveras när man bygger för Windows-plattformen. Efter det inkluderar vi det nödvändiga paketet för koden med paketet och importmodifieraren. Sedan kommer funktionen main() som använder funktionen println() för att skriva ut uttalandet när man bygger fönstrets taggar i Golang.

När vi bygger och kör det här programmet på ett Windows-system visar det 'Hej, Windows-exemplet!' meddelande till konsolen. Observera att programmet inte kommer att byggas eller köras på andra operativsystem på grund av byggbegränsningen.



Exempel 3: Lägg till Golang Build-taggen för icke-Windows-systemet

Omvänt, om vi vill utesluta koden när vi bygger för Windows, kan du använda '!' utropstecken med build-taggen.

// +bygga !fönster

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Hej, utom Windows!' )

}

Här bygger vi ett begränsningsdirektiv som indikerar att koden ska byggas och köras på andra plattformar än Windows. Utropstecknet (!) före Windows anger att denna kod ska inkluderas för alla plattformar utom Windows. Sedan fortsätter vi med samma program som i föregående funktion där vi först lägger till paketen och anropar funktionen main() för att exekvera meddelandet som skickas in i println()-funktionen.

Sålunda genererar utgången meddelandet på operativsystemets konsoler. Tänk på att det inte kommer att köras på Windows-operativsystemet på grund av byggbegränsningen:

Exempel 4: Lägg till Golang Build-taggen med OR-logiken

För att inkludera koden när vi riktar in oss på Windows ELLER Linux kan vi använda byggtaggen '// +build windows Linux'.

// +bygga Windows Linux

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Hej, Windows- eller Linux-användare' )

}

Här tillämpar vi byggbegränsningen med den logiska OR som avser att byggas för både Windows och Linux operativsystem. Raden '// +build windows Linux' anger att den här filen ska inkluderas i builden när målplattformen är antingen Windows eller Linux. Därefter importerar vi 'fmt'-paketet från Go-standardbiblioteket som tillhandahåller grundläggande in- och utdatafunktioner. I huvudfunktionen skriver vi ut strängsatsen 'Hey, Windows eller Linux Users' med funktionen Println() från paketet 'fmt'.

Följaktligen hämtas utgången i det följande. Samma meddelande genereras oavsett om vi använder operativsystemet Windows eller Linux:

Exempel 5: Lägg till Golang Build Tag med AND Logic

Vi kan specificera flera byggtaggar för att skapa mer komplexa villkor. Kommandot '// +build windows,linux' kan användas för att generera en kod för både Linux och Windows.

// +bygga fönster,386

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Detta är 32-bitars Windows' )

}

Här är byggbegränsningen som definieras '// +build windows,386' som anger att Go-filen ska inkluderas i builden när målplattformen är ett 32-bitars Windows. Observera att vi använder ett kommatecken ',' mellan Windows och 386 som fungerar som den logiska OCH-operatorn. Detta innebär att båda villkoren måste vara uppfyllda för att koden ska ingå i bygget.

Sedan, i likhet med föregående exempel, importerar vi 'fmt'-paketet från Go-standardbiblioteket för att använda Println-funktionen() för utdata. Vi har funktionen main() i programmet där satsen skickas som ett argument till println()-funktionen.

När vi bygger och kör det här programmet på ett 32-bitars Windows-system visar det det angivna meddelandet som utdata. Men om vi försöker bygga och köra det på ett annat operativsystem eller arkitektur, kommer det inte att inkluderas i bygget:

Exempel 6: Lägg till Golang Build-taggen för en specifik funktion

Dessutom kan build-taggar också appliceras på specifika funktioner i en fil. På grund av byggbegränsningarna kan vi nu villkorligt inkludera eller ta bort specifika funktioner.

paket huvud

importera 'fmt'

func huvud () {

fmt . Println ( 'Hej där, njut!' )

printWindowsMessage ()

}

// +bygga fönster

func printWindowsMessage () {

fmt . Println ( 'Hej från Windows operativsystem' )

}

Här går vi nu vidare till main()-metoden som använder metoden Println() som tillhandahålls av 'fmt'-paketet för att skriva ut meddelandet i början. Sedan distribuerar vi funktionen printWindowsMessage() under main()-funktionen och anger byggrestriktionen '// +build windows'. Detta indikerar att funktionen endast ingår i builden när målplattformen är Windows.

Slutligen ställer vi in ​​printWindowsMessage()-funktionen för att skriva ut det angivna 'Hej från Windows-operativsystem'-meddelandet med hjälp av Println()-funktionen.

Således hämtas utdata som visar både det allmänna meddelandet och det plattformsspecifika meddelandet. Observera att om vi bygger och kör det på ett annat operativsystem, kommer funktionen printWindowsMessage() inte att inkluderas i bygget, och endast det allmänna meddelandet kommer att visas:

Slutsats

Genom att lägga till byggtaggar i Go får du möjlighet att anpassa kodinkluderingen under byggprocessen. Genom att utnyttja byggtaggarna kan vi skapa de plattformsspecifika byggen, optimera koden för olika arkitekturer och till och med villkorligt inkludera specifika funktioner eller funktioner.