Как да добавите етикети за изграждане на Golang

Kak Da Dobavite Etiketi Za Izgrazdane Na Golang



Етикетите за изграждане в Go са мощна функция, която ни позволява условно да включим или изключим определен код по време на процеса на изграждане въз основа на конкретни ограничения за изграждане. Тази гъвкавост ни позволява да създаваме специфични за платформата компилации за различни операционни системи, архитектури или други специфични за средата изисквания. Етикетите за компилация са специални коментари, които се добавят в началото на изходния файл, точно над декларацията на пакета. Тези етикети предоставят инструкции на системата за изграждане на Go за това как да обработва кода в този файл по време на процеса на компилиране.

Пример 1: Добавете етикета за изграждане на Golang за Linux система

За да се насочи към операционната система Linux, можем да добавим етикета за компилация „// +build linux“.

//отидете на изграждане на linux

// +изграждане на linux

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Пример за система Hello Linux“ )

}

Тук задаваме ограниченията за изграждане в Go, които указват, че кодът трябва да бъде изграден само ако целевата система е Linux. След това дефинираме пакета и импортираме необходимия оператор за кода. След това влизаме в метода main(), където отпечатваме съобщението, използвайки извикването „Println“ от пакета „fmt“.







Така съобщението се показва на конзолата успешно за операционната система Linux:





Пример 2: Добавяне на таг за изграждане на Golang за система Windows

Когато просто искаме кодът да се изпълни на платформата на Windows, ние използваме етикета за изграждане „// +build windows“ в началото на файла. От това можем да се уверим, че кодът е включен в компилацията само когато Windows е предвидената платформа.





// +изграждане на прозорци

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Здравей, пример за Windows!“ )

}

Тук използваме ограничението за изграждане „// +build windows“, за да гарантираме, че кодът се компилира и изпълнява само при изграждане за платформата на Windows. След това включваме необходимия пакет за кода с пакета и модификатора за импортиране. След това идва функцията main(), която използва функцията println(), за да отпечата израза, когато създава тагове на прозореца в Golang.

Когато създаваме и изпълняваме тази програма на Windows система, тя показва „Здравей, пример за Windows!“ съобщение до конзолата. Имайте предвид, че програмата няма да бъде изградена или изпълнена на други операционни системи поради ограничението за компилация.



Пример 3: Добавете етикета за компилация на Golang за системата, различна от Windows

Обратно, ако искаме да изключим кода, когато създаваме за Windows, можете да използвате '!' удивителен знак с етикета за изграждане.

// +build !windows

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Здравейте, освен Windows!“ )

}

Тук изграждаме директива за ограничение, която показва, че кодът трябва да бъде изграден и изпълнен на платформи, различни от Windows. Удивителният знак (!) пред Windows означава, че този код трябва да бъде включен за всички платформи с изключение на Windows. След това продължаваме със същата програма, както в предишната функция, където първо добавяме пакетите и извикваме функцията main(), за да изпълним съобщението, което се предава във функцията println().

По този начин изходът генерира съобщението на конзолите на операционната система. Имайте предвид, че няма да се изпълни в операционната система Windows поради ограничението за компилация:

Пример 4: Добавете тага за изграждане на Golang с логиката ИЛИ

За да включим кода, когато се насочваме към Windows ИЛИ Linux, можем да използваме етикета за изграждане „// +build windows Linux“.

// +изграждане на windows Linux

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Хей, потребители на Windows или Linux“ )

}

Тук прилагаме ограничението за изграждане с логическото ИЛИ, което възнамерява да бъде изградено както за операционни системи Windows, така и за Linux. Редът „// +build windows Linux“ указва, че този файл трябва да бъде включен в компилацията, когато целевата платформа е Windows или Linux. След това импортираме пакета „fmt“ от стандартната библиотека Go, който предоставя основната входна и изходна функционалност. В основната функция отпечатваме оператора на низа „Хей, потребители на Windows или Linux“, като използваме функцията Println() от пакета „fmt“.

Следователно изходът се извлича по-долу. Едно и също съобщение се генерира независимо дали използваме операционна система Windows или Linux:

Пример 5: Добавете тага за изграждане на Golang с логиката И

Можем да посочим множество тагове за изграждане, за да създадем по-сложни условия. Командата “// +build windows,linux” може да се използва за генериране на код както за Linux, така и за Windows.

// +изграждане на windows,386

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Това е 32-битов Windows“ )

}

Тук дефинираното ограничение за компилация е „// +build windows,386“, което указва, че Go файлът трябва да бъде включен в компилацията, когато целевата платформа е 32-битов Windows. Обърнете внимание, че използваме запетая „,“ между Windows и 386, която действа като логически оператор И. Това означава, че и двете условия трябва да бъдат изпълнени, за да може кодът да бъде включен в компилацията.

След това, подобно на предишния пример, импортираме пакета „fmt“ от стандартната библиотека Go, за да използваме функцията Println() за изход. Имаме функцията main() на програмата, където изразът се предава като аргумент на функцията println().

Когато изградим и стартираме тази програма на 32-битова Windows система, тя показва указаното съобщение като изход. Въпреки това, ако се опитаме да изградим и да го стартираме на различна операционна система или архитектура, той няма да бъде включен в компилацията:

Пример 6: Добавете тага за изграждане на Golang за конкретна функция

Освен това етикетите за изграждане могат да се прилагат и към специфични функции във файл. Поради ограниченията на изграждането, сега можем условно да включваме или премахваме конкретни функции.

пакет основен

импортиране 'fmt'

функ основен () {

fmt . Println ( „Здравейте, наслаждавайте се!“ )

printWindowsMessage ()

}

// +изграждане на прозорци

функ printWindowsMessage () {

fmt . Println ( „Здравейте от операционната система Windows“ )

}

Тук сега преминаваме към метода main(), който използва метода Println(), предоставен от пакета „fmt“, за да отпечата съобщението в началото. След това внедряваме функцията printWindowsMessage() под функцията main() и указваме ограничението за изграждане „// +build windows“. Това показва, че функцията е включена в компилацията само когато целевата платформа е Windows.

Накрая задаваме функцията printWindowsMessage() да отпечатва указаното съобщение „Здравейте от операционната система Windows“ с помощта на функцията Println().

По този начин се извлича изходът, който показва както общото съобщение, така и съобщението, специфично за платформата. Обърнете внимание, че ако изградим и го стартираме на различна операционна система, функцията printWindowsMessage() няма да бъде включена в компилацията и ще се покаже само общото съобщение:

Заключение

Добавянето на етикети за изграждане в Go предоставя възможност за персонализиране на включването на код по време на процеса на изграждане. Като използваме етикетите за компилация, можем да създадем компилации, специфични за платформата, да оптимизираме кода за различни архитектури и дори условно да включим специфични функции или функции.