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önsterpaket 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 Linuxpaket 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,386paket 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 huvudimportera '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.