Kā pievienot Golang Build tagus

Ka Pievienot Golang Build Tagus



Build tagi pakalpojumā Go ir jaudīgs līdzeklis, kas ļauj mums nosacīti iekļaut vai izslēgt konkrētu kodu veidošanas procesā, pamatojoties uz konkrētiem būvēšanas ierobežojumiem. Šī elastība ļauj mums izveidot platformai raksturīgus būvējumus dažādām operētājsistēmām, arhitektūrām vai citām ar vidi saistītām prasībām. Build tags ir īpaši komentāri, kas tiek pievienoti avota faila sākumā tieši virs pakotnes deklarācijas. Šie tagi sniedz norādījumus Go build sistēmai par to, kā kompilācijas procesa laikā apstrādāt šajā failā esošo kodu.

1. piemērs: pievienojiet Golang Build tagu Linux sistēmai

Lai atlasītu operētājsistēmu Linux, mēs varam pievienot būvējuma tagu “// +build linux”.

//ej būvēt Linux

// +build Linux

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Sveiki, Linux sistēmas piemērs' )

}

Šeit mēs iestatām izveides ierobežojumus Go, kas norāda, ka kods ir jāveido tikai tad, ja mērķa sistēma ir Linux. Pēc tam mēs definējam paketi un importējam koda nepieciešamo paziņojumu. Pēc tam mēs ievadām metodi main(), kur mēs izdrukājam ziņojumu, izmantojot izsaukumu “Println” no “fmt” pakotnes.







Tādējādi ziņojums tiek veiksmīgi parādīts konsolē operētājsistēmai Linux:





2. piemērs: pievienojiet Golang Build tagu Windows sistēmai

Ja mēs vienkārši vēlamies, lai kods tiktu izpildīts Windows platformā, faila sākumā izmantojam būvēšanas tagu “// +build windows”. Tādējādi mēs varam pārliecināties, ka kods tiek iekļauts būvniecībā tikai tad, ja Windows ir paredzēta platforma.





// +veidot logus

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Sveiki, Windows piemērs!' )

}

Šeit mēs izmantojam “// +build windows” veidošanas ierobežojumu, lai nodrošinātu, ka kods tiek apkopots un izpildīts tikai tad, kad tiek veidots Windows platformai. Pēc tam mēs iekļaujam nepieciešamo koda pakotni ar pakotni un importa modifikatoru. Pēc tam nāk funkcija main (), kas izmanto funkciju println (), lai drukātu paziņojumu, veidojot loga tagus Golangā.

Kad mēs veidojam un palaižam šo programmu Windows sistēmā, tā parāda 'Sveiki, Windows piemērs!' ziņojumu konsolei. Ņemiet vērā, ka programma netiks veidota vai izpildīta citās operētājsistēmās izveides ierobežojumu dēļ.



3. piemērs: pievienojiet Golang Build tagu sistēmai, kas nav Windows

Un otrādi, ja mēs vēlamies izslēgt kodu, veidojot operētājsistēmai Windows, varat izmantot “!” izsaukuma zīme ar uzbūves tagu.

// +build !windows

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Sveiki, izņemot Windows!' )

}

Šeit mēs izveidojam ierobežojuma direktīvu, kas norāda, ka kods ir jāveido un jāizpilda citās platformās, nevis Windows. Izsaukuma zīme (!) pirms Windows norāda, ka šis kods ir jāiekļauj visās platformās, izņemot Windows. Pēc tam mēs turpinām ar to pašu programmu kā iepriekšējā funkcijā, kur vispirms pievienojam pakotnes un izsaucam galveno () funkciju, lai izpildītu ziņojumu, kas tiek nodots funkcijā println ().

Tādējādi izvade ģenerē ziņojumu operētājsistēmas konsolēs. Ņemiet vērā, ka tas netiks izpildīts operētājsistēmā Windows būvēšanas ierobežojumu dēļ:

4. piemērs: pievienojiet Golang veidošanas tagu, izmantojot VAI loģiku

Lai iekļautu kodu, atlasot Windows VAI Linux, mēs varam izmantot būvējuma tagu “// +build windows Linux”.

// +veidot Windows Linux

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Hei, Windows vai Linux lietotāji' )

}

Šeit mēs izmantojam veidošanas ierobežojumu ar loģisko VAI, ko paredzēts izveidot gan Windows, gan Linux operētājsistēmām. Rinda “// +build windows Linux” norāda, ka šis fails ir jāiekļauj būvniecībā, ja mērķa platforma ir Windows vai Linux. Tālāk mēs importējam pakotni “fmt” no Go standarta bibliotēkas, kas nodrošina pamata ievades un izvades funkcionalitāti. Galvenajā funkcijā mēs izdrukājam virknes paziņojumu “Hey, Windows or Linux Users”, izmantojot funkciju Println() no pakotnes “fmt”.

Tādējādi izvade tiek izgūta tālāk. Tas pats ziņojums tiek ģenerēts neatkarīgi no tā, vai mēs izmantojam Windows vai Linux operētājsistēmu:

5. piemērs. Pievienojiet Golang Build tagu ar UN loģiku

Mēs varam norādīt vairākus veidošanas tagus, lai izveidotu sarežģītākus nosacījumus. Komandu “// +build windows,linux” var izmantot, lai ģenerētu kodu gan Linux, gan Windows.

// +build windows,386

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Šī ir 32 bitu Windows' )

}

Šeit definētais būvēšanas ierobežojums ir “// +build windows,386”, kas norāda, ka Go fails ir jāiekļauj būvniecībā, ja mērķa platforma ir 32 bitu Windows. Ņemiet vērā, ka starp Windows un 386 mēs izmantojam komatu “”, kas darbojas kā loģiskais operators UN. Tas nozīmē, ka ir jāizpilda abi nosacījumi, lai kods tiktu iekļauts būvniecībā.

Pēc tam, līdzīgi kā iepriekšējā piemērā, mēs importējam pakotni “fmt” no Go standarta bibliotēkas, lai izvadei izmantotu funkciju Println (). Mums ir programmas galvenā () funkcija, kurā paziņojums tiek nodots kā arguments funkcijai println ().

Kad mēs veidojam un palaižam šo programmu 32 bitu Windows sistēmā, tā parāda norādīto ziņojumu kā izvadi. Tomēr, ja mēģināsim to izveidot un palaist citā operētājsistēmā vai arhitektūrā, tas netiks iekļauts būvniecībā:

6. piemērs: pievienojiet Golang Build tagu noteiktai funkcijai

Turklāt veidošanas tagus var lietot arī konkrētām faila funkcijām. Būvēšanas ierobežojumu dēļ mēs tagad varam nosacīti iekļaut vai noņemt noteiktas funkcijas.

iepakojums galvenais

imports 'fmt'

func galvenais () {

fmt . Println ( 'Čau, izbaudi!' )

drukāt WindowsMessage ()

}

// +veidot logus

func drukāt WindowsMessage () {

fmt . Println ( 'Labdien no Windows operētājsistēmas' )

}

Šeit mēs tagad pārejam uz galveno () metodi, kas izmanto Println () metodi, ko nodrošina 'fmt' pakotne, lai sākumā izdrukātu ziņojumu. Pēc tam mēs izvietojam funkciju printWindowsMessage() zem funkcijas main() un norādām “// +build windows” veidošanas ierobežojumu. Tas norāda, ka funkcija ir iekļauta būvniecībā tikai tad, ja mērķa platforma ir Windows.

Visbeidzot, mēs iestatījām funkciju printWindowsMessage() drukāt norādīto ziņojumu “Sveiki no Windows operētājsistēmas”, izmantojot funkciju Println().

Tādējādi tiek izgūta izvade, kurā tiek parādīts gan vispārīgais ziņojums, gan platformai specifiskais ziņojums. Ņemiet vērā, ka, veidojot un palaižot to citā operētājsistēmā, funkcija printWindowsMessage() netiks iekļauta būvniecībā un tiks parādīts tikai vispārīgais ziņojums:

Secinājums

Būvējuma tagu pievienošana programmā Go nodrošina iespēju pielāgot koda iekļaušanu veidošanas procesa laikā. Izmantojot būvēšanas tagus, mēs varam izveidot platformai raksturīgus būvējumus, optimizēt kodu dažādām arhitektūrām un pat nosacīti iekļaut konkrētas funkcijas vai līdzekļus.