Slik legger du til Golang Build-tagger

Slik Legger Du Til Golang Build Tagger



Bygg-tagger i Go er en kraftig funksjon som lar oss betinget inkludere eller ekskludere en bestemt kode under byggeprosessen basert på spesifikke byggebegrensninger. Denne fleksibiliteten gjør oss i stand til å lage plattformspesifikke bygg for ulike operativsystemer, arkitekturer eller andre miljøspesifikke krav. Byggekoder er spesielle kommentarer som legges til i begynnelsen av en kildefil, rett over pakkeerklæringen. Disse kodene gir instruksjoner til Go-byggesystemet om hvordan du håndterer koden i den filen under kompileringsprosessen.

Eksempel 1: Legg til Golang Build Tag for Linux System

For å målrette mot Linux-operativsystemet kan vi legge til '// +build linux' build-taggen.

//gå til å bygge linux

// +bygg linux

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Hei Linux-systemeksempel' )

}

Her setter vi byggebegrensningene i Go som spesifiserer at koden bare skal bygges hvis målsystemet er Linux. Etter det definerer vi pakken og importerer den nødvendige setningen for koden. Deretter går vi inn i main()-metoden der vi skriver ut meldingen ved å bruke 'Println'-kallet fra 'fmt'-pakken.







Dermed vises meldingen på konsollen vellykket for Linux-operativsystemet:





Eksempel 2: Legg til Golang Build Tag for Windows System

Når vi bare vil at koden skal kjøres på Windows-plattformen, bruker vi byggekoden '// +build windows' i begynnelsen av filen. Fra det kan vi sørge for at koden bare er integrert i bygningen når Windows er den tiltenkte plattformen.





// +bygg vinduer

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Hei, Windows-eksempel!' )

}

Her bruker vi byggebegrensningen '// +build windows' for å sikre at koden kun kompileres og kjøres når du bygger for Windows-plattformen. Etter det inkluderer vi den nødvendige pakken for koden med pakken og importmodifikatoren. Deretter kommer main()-funksjonen som bruker println()-funksjonen for å skrive ut setningen når du bygger vinduets tagger i Golang.

Når vi bygger og kjører dette programmet på et Windows-system, viser det 'Hei, Windows-eksempelet!' melding til konsollen. Merk at programmet ikke vil bygges eller kjøres på andre operativsystemer på grunn av byggebegrensningen.



Eksempel 3: Legg til Golang Build Tag for ikke-Windows-systemet

Omvendt, hvis vi ønsker å ekskludere koden når vi bygger for Windows, kan du bruke '!' utropstegn med build-taggen.

// +bygg !vinduer

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Hei, unntatt Windows!' )

}

Her bygger vi et begrensningsdirektiv som indikerer at koden skal bygges og kjøres på andre plattformer enn Windows. Utropstegnet (!) foran Windows angir at denne koden skal inkluderes for alle plattformer unntatt Windows. Deretter fortsetter vi med det samme programmet som i forrige funksjon, hvor vi først legger til pakkene og kaller main()-funksjonen for å utføre meldingen som sendes i println()-funksjonen.

Dermed genererer utgangen meldingen på operativsystemkonsollene. Husk at det ikke vil kjøre på Windows-operativsystemet på grunn av byggebegrensningen:

Eksempel 4: Legg til Golang Build Tag med OR Logic

For å inkludere koden når vi målretter mot Windows ELLER Linux, kan vi bruke byggekoden '// +build windows Linux'.

// +bygg windows Linux

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Hei, Windows- eller Linux-brukere' )

}

Her bruker vi byggebegrensningen med den logiske OR som har til hensikt å bygges for både Windows- og Linux-operativsystemer. Linjen '// +build windows Linux' spesifiserer at denne filen skal inkluderes i builden når målplattformen er enten Windows eller Linux. Deretter importerer vi 'fmt'-pakken fra Go-standardbiblioteket som gir den grunnleggende inngangs- og utgangsfunksjonaliteten. I hovedfunksjonen skriver vi ut strengsetningen 'Hey, Windows eller Linux Users' ved å bruke Println()-funksjonen fra 'fmt'-pakken.

Derfor hentes utgangen i det følgende. Den samme meldingen genereres enten vi bruker Windows- eller Linux-operativsystemet:

Eksempel 5: Legg til Golang Build Tag med AND Logic

Vi kan spesifisere flere byggekoder for å skape mer komplekse forhold. Kommandoen '// +build windows,linux' kan brukes til å generere en kode for både Linux og Windows.

// +bygg vinduer,386

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Dette er 32-biters Windows' )

}

Her er byggebegrensningen som er definert '// +build windows,386' som spesifiserer at Go-filen skal inkluderes i builden når målplattformen er en 32-bits Windows. Merk at vi bruker et komma ',' mellom Windows og 386 som fungerer som den logiske OG-operatoren. Dette betyr at begge betingelsene må være oppfylt for at koden skal inkluderes i bygget.

Deretter, i likhet med det forrige eksemplet, importerer vi 'fmt'-pakken fra Go-standardbiblioteket for å bruke Println-funksjonen() for utdata. Vi har main()-funksjonen til programmet der setningen sendes som et argument til println()-funksjonen.

Når vi bygger og kjører dette programmet på et 32-bits Windows-system, viser det den angitte meldingen som utdata. Men hvis vi prøver å bygge og kjøre det på et annet operativsystem eller arkitektur, vil det ikke bli inkludert i bygget:

Eksempel 6: Legg til Golang Build Tag for en spesifikk funksjon

I tillegg kan byggekoder også brukes på spesifikke funksjoner i en fil. På grunn av byggebegrensningene kan vi nå betinget inkludere eller fjerne spesifikke funksjoner.

pakke hoved-

import 'fmt'

func hoved- () {

fmt . Println ( 'Hei, nyt!' )

printWindowsMessage ()

}

// +bygg vinduer

func printWindowsMessage () {

fmt . Println ( 'Hei fra Windows-operativsystemet' )

}

Her går vi nå videre til main()-metoden som bruker Println()-metoden levert av 'fmt'-pakken for å skrive ut meldingen i begynnelsen. Deretter distribuerer vi printWindowsMessage()-funksjonen under main()-funksjonen og spesifiserer byggebegrensningen '// +build windows'. Dette indikerer at funksjonen bare er inkludert i bygget når målplattformen er Windows.

Til slutt setter vi printWindowsMessage()-funksjonen til å skrive ut den spesifiserte 'Hei fra Windows-operativsystem'-meldingen ved å bruke Println()-funksjonen.

Dermed hentes utgangen som viser både den generelle meldingen og den plattformspesifikke meldingen. Merk at hvis vi bygger og kjører det på et annet operativsystem, vil ikke printWindowsMessage()-funksjonen inkluderes i bygningen, og bare den generelle meldingen vil vises:

Konklusjon

Å legge til byggekoder i Go gir muligheten til å tilpasse kodeinkluderingen under byggeprosessen. Ved å utnytte byggetaggene kan vi lage plattformspesifikke bygg, optimalisere koden for forskjellige arkitekturer og til og med betinget inkludere spesifikke funksjoner eller funksjoner.