Bohužel, Go nedokáže podmíněným překladem zkompilovat jen část souboru, takže nejde docílit stejného chování jako v případě C/C++. Protože je ale Go multiplatformní, musí existovat možnost jak kompilovat různé kódy pod různými OS.
Build tagy
Na začátek souboru se může vložit řádek, ve kterém definujeme tagy, jestli se soubor má zkompilovat nebo ne. Některé tagy jsou již předem nadefinovány, jiné ale můžeme přidat sami. Podmínky překladu musí být na prvním řádku, zapisují se jako komentář a za ním musí být minimálně jeden volný řádek.
Debug není předem nadefinovaný, ale můj vlastní tag. Následující soubor se zkompiluje pouze, pokud tag debug specifikujeme při kompilaci.
// +build debug var a int
Následující soubor se zkompiluje pouze, pokud tag debug nespecifikujeme, v opačném případě se soubor ignoruje.
// +build !debug var a int
Pokud by mezi definicí proměnné a komentářem nebyl volný řádek, kompilátor vezme komentář jako dokumentaci dané proměnné. Proto je nutné 1 volný řádek vždy vložit. Tagy ale mohou být zapsány na více řádků, poté se mezi nimi aplikuje operátor AND.
Kompilace
Tagy se určují jako parametry příkazu build. Pokud tedy chceme tag debug nastavit, provedeme to příkazem jako je níže
go build -tags debug
Nedosáhneme stejného chování jako podmíněný překlad v jiných jazycích, ale může pomoct.
K tomuto článku již není možné přidávat další komentáře