Hoe Golang Build-tags toe te voegen

Hoe Golang Build Tags Toe Te Voegen



Build-tags in Go zijn een krachtige functie waarmee we tijdens het bouwproces een bepaalde code voorwaardelijk kunnen opnemen of uitsluiten op basis van specifieke bouwbeperkingen. Deze flexibiliteit stelt ons in staat platformspecifieke builds te maken voor verschillende besturingssystemen, architecturen of andere omgevingsspecifieke vereisten. Build-tags zijn speciale opmerkingen die aan het begin van een bronbestand worden toegevoegd, net boven de pakketdeclaratie. Deze tags geven instructies aan het Go-buildsysteem over hoe om te gaan met de code in dat bestand tijdens het compilatieproces.

Voorbeeld 1: Voeg de Golang Build-tag voor Linux-systeem toe

Om het Linux-besturingssysteem te targeten, kunnen we de build-tag “// +build linux” toevoegen.

//ga Linux bouwen

// + Linux bouwen

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Hallo Linux Systeemvoorbeeld' )

}

Hier stellen we de bouwbeperkingen in Go in, die specificeren dat de code alleen mag worden gebouwd als het doelsysteem Linux is. Daarna definiëren we het pakket en importeren we de vereiste verklaring voor de code. Vervolgens voeren we de main()-methode in, waarbij we het bericht afdrukken met behulp van de “Println” -aanroep van het “fmt” -pakket.







Het bericht wordt dus met succes op de console weergegeven voor het Linux-besturingssysteem:





Voorbeeld 2: Voeg de Golang Build-tag voor Windows-systeem toe

Als we alleen willen dat de code wordt uitgevoerd op het Windows-platform, gebruiken we de build-tag “// +build windows” aan het begin van het bestand. Op basis daarvan kunnen we ervoor zorgen dat de code alleen in de build wordt opgenomen als Windows het beoogde platform is.





// +vensters bouwen

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Hallo, Windows-voorbeeld!' )

}

Hier gebruiken we de buildbeperking “// +build windows” om ervoor te zorgen dat de code alleen wordt gecompileerd en uitgevoerd bij het bouwen voor het Windows-platform. Daarna voegen we het benodigde pakket voor de code toe aan het pakket en de importmodifier. Dan komt de functie main() die de functie println() gebruikt om de instructie af te drukken bij het bouwen van de tags van het venster in Golang.

Wanneer we dit programma bouwen en uitvoeren op een Windows-systeem, wordt het 'Hallo, Windows-voorbeeld!' bericht naar de console. Houd er rekening mee dat het programma vanwege de bouwbeperking niet op andere besturingssystemen zal worden gebouwd of uitgevoerd.



Voorbeeld 3: Voeg de Golang Build-tag toe voor het niet-Windows-systeem

Omgekeerd, als we de code willen uitsluiten bij het bouwen voor Windows, kunt u de “!” uitroepteken met de build-tag.

// +bouw !windows

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Hallo, behalve Windows!' )

}

Hier bouwen we een beperkingsrichtlijn die aangeeft dat de code moet worden gebouwd en uitgevoerd op andere platforms dan Windows. Het uitroepteken (!) vóór Windows geeft aan dat deze code voor alle platforms behalve Windows moet worden opgenomen. Vervolgens gaan we verder met hetzelfde programma als in de vorige functie, waarbij we eerst de pakketten toevoegen en de functie main() aanroepen om het bericht uit te voeren dat wordt doorgegeven in de functie println().

De uitvoer genereert dus het bericht op de consoles van het besturingssysteem. Houd er rekening mee dat het niet kan worden uitgevoerd op het Windows-besturingssysteem vanwege de buildbeperking:

Voorbeeld 4: Voeg de Golang Build-tag toe met de OR-logica

Om de code op te nemen bij het targeten van Windows OF Linux, kunnen we de build-tag '// +build windows Linux' gebruiken.

// + Windows Linux bouwen

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Hé, Windows- of Linux-gebruikers' )

}

Hier passen we de bouwbeperking toe met de logische OR die bedoeld is om te worden gebouwd voor zowel Windows- als Linux-besturingssystemen. De regel “// +build windows Linux” geeft aan dat dit bestand moet worden opgenomen in de build als het doelplatform Windows of Linux is. Vervolgens importeren we het “fmt” -pakket uit de Go-standaardbibliotheek, die de basisinvoer- en uitvoerfunctionaliteit biedt. In de hoofdfunctie drukken we de stringinstructie “Hey, Windows or Linux Users” af met behulp van de Println()-functie uit het “fmt”-pakket.

Daarom wordt de uitvoer hieronder opgehaald. Hetzelfde bericht wordt gegenereerd, ongeacht of we het Windows- of Linux-besturingssysteem gebruiken:

Voorbeeld 5: Voeg de Golang Build-tag toe met de AND-logica

We kunnen meerdere build-tags specificeren om complexere voorwaarden te creëren. De opdracht “// +build windows,linux” kan worden gebruikt om een ​​code voor zowel Linux als Windows te genereren.

// +vensters bouwen,386

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Dit is 32-bits Windows' )

}

Hier is de buildbeperking die is gedefinieerd “// +build windows,386”, wat specificeert dat het Go-bestand in de build moet worden opgenomen als het doelplatform een ​​32-bits Windows is. Merk op dat we een komma “,” gebruiken tussen Windows en 386, die fungeert als de logische AND-operator. Dit betekent dat aan beide voorwaarden moet worden voldaan voordat de code in de build wordt opgenomen.

Vervolgens importeren we, vergelijkbaar met het vorige voorbeeld, het “fmt”-pakket uit de Go-standaardbibliotheek om de Println-functie() voor uitvoer te gebruiken. We hebben de functie main() van het programma waarbij de instructie als argument wordt doorgegeven aan de functie println().

Wanneer we dit programma bouwen en uitvoeren op een 32-bits Windows-systeem, wordt het opgegeven bericht als uitvoer weergegeven. Als we echter proberen het te bouwen en uit te voeren op een ander besturingssysteem of een andere architectuur, wordt het niet opgenomen in de build:

Voorbeeld 6: Voeg de Golang Build-tag toe voor een specifieke functie

Bovendien kunnen build-tags ook worden toegepast op specifieke functies binnen een bestand. Vanwege de bouwbeperkingen kunnen we nu specifieke functies voorwaardelijk opnemen of verwijderen.

pakket voornaamst

importeren 'fmt'

func voornaamst () {

fmt . Println ( 'Hé daar, geniet ervan!' )

Windows-bericht afdrukken ()

}

// +vensters bouwen

func Windows-bericht afdrukken () {

fmt . Println ( 'Hallo vanaf Windows-besturingssysteem' )

}

Hier gaan we nu verder met de methode main() die de methode Println() van het pakket “fmt” gebruikt om het bericht in het begin af te drukken. Vervolgens implementeren we de functie printWindowsMessage() onder de functie main() en specificeren we de buildbeperking “// +build windows”. Dit geeft aan dat de functie alleen in de build wordt opgenomen als het doelplatform Windows is.

Ten slotte stellen we de functie printWindowsMessage() zo in dat het opgegeven bericht “Hallo vanuit Windows-besturingssysteem” wordt afgedrukt met behulp van de functie Println().

Zo wordt de uitvoer opgehaald die zowel het algemene bericht als het platformspecifieke bericht weergeeft. Houd er rekening mee dat als we het op een ander besturingssysteem bouwen en uitvoeren, de functie printWindowsMessage() niet in de build wordt opgenomen en alleen het algemene bericht wordt weergegeven:

Conclusie

Het toevoegen van build-tags in Go biedt de mogelijkheid om de code-opname tijdens het bouwproces aan te passen. Door gebruik te maken van de build-tags kunnen we platformspecifieke builds maken, de code optimaliseren voor verschillende architecturen en zelfs voorwaardelijk specifieke functies of features opnemen.