Kuinka lisätä Golang Build -tunnisteita

Kuinka Lisata Golang Build Tunnisteita



Go:n koontitunnisteet ovat tehokas ominaisuus, jonka avulla voimme ehdollisesti sisällyttää tai sulkea pois tietyn koodin rakennusprosessin aikana tiettyjen koontirajoitusten perusteella. Tämän joustavuuden ansiosta voimme luoda alustakohtaisia ​​koontiversioita erilaisille käyttöjärjestelmille, arkkitehtuureille tai muille ympäristökohtaisille vaatimuksille. Rakennustunnisteet ovat erikoiskommentteja, jotka lisätään lähdetiedoston alkuun, aivan paketin määrityksen yläpuolelle. Nämä tunnisteet antavat Go build -järjestelmälle ohjeita siitä, kuinka kyseisessä tiedostossa olevaa koodia käsitellään käännösprosessin aikana.

Esimerkki 1: Lisää Golang Build Tag Linux-järjestelmään

Kohdistaaksemme Linux-käyttöjärjestelmään voimme lisätä '// +build linux' -koontitunnisteen.

//mennä rakentamaan linux

// +koon linux

paketti pää

tuonti 'fmt'

func pää () {

fmt . Println ( 'Hei Linux-järjestelmäesimerkki' )

}

Tässä asetamme Go:n koontirajoitukset, jotka määrittävät, että koodi tulee rakentaa vain, jos kohdejärjestelmä on Linux. Tämän jälkeen määritämme paketin ja tuomme tarvittavan lauseen koodille. Sitten syötetään main()-menetelmä, jossa tulostamme viestin 'Println'-kutsulla 'fmt'-paketista.







Siten viesti näytetään konsolissa onnistuneesti Linux-käyttöjärjestelmässä:





Esimerkki 2: Lisää Golang Build Tag for Windows System

Kun haluamme vain koodin suoritettavan Windows-alustalla, käytämme '// +build windows' -koontitunnistetta tiedoston alussa. Sen perusteella voimme varmistaa, että koodi sisällytetään koontiversioon vain, kun Windows on tarkoitettu alustaksi.





// +rakenna ikkunat

paketti pää

tuonti 'fmt'

func pää () {

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

}

Tässä käytämme '// +build windows' -koontirajoitusta varmistaaksemme, että koodi käännetään ja suoritetaan vain Windows-alustalle rakennettaessa. Tämän jälkeen sisällytämme koodille tarvittavan paketin paketin ja tuontimuuntimen kanssa. Sitten tulee main()-funktio, joka käyttää println()-funktiota tulostamaan lausunnon, kun rakennetaan ikkunan tunnisteita Golangissa.

Kun rakennamme ja suoritamme tämän ohjelman Windows-järjestelmässä, se näyttää 'Hei, Windows-esimerkki!' viesti konsoliin. Huomaa, että ohjelmaa ei rakenneta tai suoriteta muissa käyttöjärjestelmissä koontirajoituksen vuoksi.



Esimerkki 3: Lisää Golang-koontitunniste muulle kuin Windows-järjestelmälle

Käänteisesti, jos haluamme jättää koodin pois luotaessamme Windowsille, voit käyttää '!' huutomerkki rakennustunnisteen kanssa.

// +build !windows

paketti pää

tuonti 'fmt'

func pää () {

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

}

Täällä rakennamme rajoitusdirektiivin, joka osoittaa, että koodi tulee rakentaa ja suorittaa muilla alustoilla kuin Windowsilla. Huutomerkki (!) ennen Windowsia tarkoittaa, että tämä koodi tulee sisällyttää kaikkiin käyttöympäristöihin paitsi Windowsiin. Sitten jatkamme samalla ohjelmalla kuin edellisessä funktiossa, jossa ensin lisäämme paketit ja kutsumme main()-funktion suorittamaan viestin, joka välitetään println()-funktion sisällä.

Siten tulos luo viestin käyttöjärjestelmäkonsoleissa. Muista, että se ei toimi Windows-käyttöjärjestelmässä koontirajoituksen vuoksi:

Esimerkki 4: Lisää Golang-koontitunniste OR-logiikalla

Jos haluat sisällyttää koodin kohdistettaessa Windowsiin TAI Linuxiin, voimme käyttää '// +build windows Linux' -koontitunnistetta.

// +koon Windows Linux

paketti pää

tuonti 'fmt'

func pää () {

fmt . Println ( 'Hei, Windows- tai Linux-käyttäjät' )

}

Tässä käytämme koontirajoitusta loogisen OR:n kanssa, joka on tarkoitus rakentaa sekä Windows- että Linux-käyttöjärjestelmille. '// +build windows Linux' -rivi määrittää, että tämä tiedosto tulee sisällyttää koontiversioon, kun kohdealusta on joko Windows tai Linux. Seuraavaksi tuomme Go-standardikirjastosta 'fmt'-paketin, joka tarjoaa perussyöttö- ja tulostustoiminnot. Päätoiminnossa tulostamme 'Hey, Windows or Linux Users' -merkkijonolausekkeen käyttämällä Println()-funktiota 'fmt'-paketista.

Tästä syystä tulos haetaan seuraavassa. Sama viesti luodaan riippumatta siitä, käytämmekö Windows- tai Linux-käyttöjärjestelmää:

Esimerkki 5: Lisää Golang-koontitunniste JA-logiikalla

Voimme määrittää useita koontitunnisteita monimutkaisempien olosuhteiden luomiseksi. '// +build windows,linux' -komentoa voidaan käyttää koodin luomiseen sekä Linuxille että Windowsille.

// +build windows,386

paketti pää

tuonti 'fmt'

func pää () {

fmt . Println ( 'Tämä on 32-bittinen Windows' )

}

Tässä määritetty koontirajoitus on '// +build windows,386', joka määrittää, että Go-tiedosto tulee sisällyttää koontiversioon, kun kohdealustana on 32-bittinen Windows. Huomaa, että käytämme Windowsin ja 386:n välissä pilkkua ',' joka toimii loogisena JA-operaattorina. Tämä tarkoittaa, että molempien ehtojen on täytyttävä, jotta koodi voidaan sisällyttää koontiversioon.

Sitten, kuten edellisessä esimerkissä, tuomme 'fmt'-paketin Go-standardikirjastosta käyttääksemme Println-funktiota () tulostukseen. Meillä on ohjelman main()-funktio, jossa käsky välitetään argumenttina println()-funktiolle.

Kun rakennamme ja suoritamme tämän ohjelman 32-bittisessä Windows-järjestelmässä, se näyttää määritetyn viestin lähtönä. Jos yritämme kuitenkin rakentaa ja käyttää sitä eri käyttöjärjestelmässä tai arkkitehtuurissa, sitä ei sisällytetä koontiversioon:

Esimerkki 6: Lisää Golang Build -tagi tiettyä toimintoa varten

Lisäksi koontitunnisteita voidaan käyttää myös tiedoston tiettyihin toimintoihin. Rakennusrajoitusten vuoksi voimme nyt ehdollisesti sisällyttää tai poistaa tiettyjä toimintoja.

paketti pää

tuonti 'fmt'

func pää () {

fmt . Println ( 'Hei, nauti!' )

tulosta WindowsMessage ()

}

// +rakenna ikkunat

func tulosta WindowsMessage () {

fmt . Println ( 'Hei Windows-käyttöjärjestelmästä' )

}

Tässä siirrymme nyt main()-menetelmään, joka käyttää 'fmt'-paketin tarjoamaa Println()-menetelmää viestin tulostamiseen alussa. Sitten otamme käyttöön printWindowsMessage()-funktion main()-funktion alle ja määritämme '// +build windows' -koontirajoitteen. Tämä osoittaa, että toiminto sisältyy koontiversioon vain, kun kohdealusta on Windows.

Lopuksi asetimme printWindowsMessage()-funktion tulostamaan määritellyn 'Hei Windows-käyttöjärjestelmästä' -viestin käyttämällä Println()-toimintoa.

Tällöin noudetaan tulos, joka näyttää sekä yleisviestin että alustakohtaisen viestin. Huomaa, että jos rakennamme ja käytämme sitä toisessa käyttöjärjestelmässä, printWindowsMessage()-toimintoa ei sisällytetä koontiversioon, ja vain yleinen viesti näytetään:

Johtopäätös

Koontitunnisteiden lisääminen Go:hon tarjoaa mahdollisuuden mukauttaa koodin sisällyttämistä koontiprosessin aikana. Hyödyntämällä koontitunnisteita voimme luoda alustakohtaisia ​​koontiversioita, optimoida koodin eri arkkitehtuureille ja jopa ehdollisesti sisällyttää tiettyjä toimintoja tai ominaisuuksia.