Golang Yapı Etiketleri Nasıl Eklenir?

Golang Yapi Etiketleri Nasil Eklenir



Go'daki derleme etiketleri, belirli derleme kısıtlamalarına dayalı olarak derleme süreci sırasında belirli bir kodu koşullu olarak dahil etmemize veya hariç tutmamıza olanak tanıyan güçlü bir özelliktir. Bu esneklik, farklı işletim sistemleri, mimariler veya diğer ortama özgü gereksinimler için platforma özgü yapılar oluşturmamıza olanak tanır. Derleme etiketleri, kaynak dosyanın başına, paket bildiriminin hemen üstüne eklenen özel yorumlardır. Bu etiketler, Go derleme sistemine derleme işlemi sırasında o dosyadaki kodun nasıl işleneceğine ilişkin talimatlar sağlar.

Örnek 1: Linux Sistemi için Golang Yapı Etiketini Ekleme

Linux işletim sistemini hedeflemek için “// +build linux” build etiketini ekleyebiliriz.

//linux'u kurmaya başla

// +linux'u oluştur

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Merhaba Linux Sistem örneği' )

}

Burada Go'da, kodun yalnızca hedef sistem Linux ise oluşturulması gerektiğini belirten derleme kısıtlamalarını ayarladık. Daha sonra paketi tanımlıyoruz ve kod için gerekli ifadeyi içe aktarıyoruz. Daha sonra “fmt” paketinden “Println” çağrısını kullanarak mesajı yazdıracağımız main() metoduna giriyoruz.







Böylece, Linux işletim sistemi için mesaj konsolda başarıyla görüntülenir:





Örnek 2: Windows Sistemi için Golang Yapı Etiketini Ekleme

Kodun sadece Windows platformunda çalışmasını istediğimizde dosyanın başında “// +build windows” build etiketini kullanırız. Bundan yola çıkarak, kodun yalnızca Windows amaçlanan platform olduğunda yapıya dahil edildiğinden emin olabiliriz.





// +pencereleri oluştur

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Merhaba, Windows örneği!' )

}

Burada, kodun yalnızca Windows platformu için derlendiğinden ve yürütüldüğünden emin olmak için “// +build windows” derleme kısıtlamasını kullanıyoruz. Daha sonra package ve import modifier ile kod için gerekli paketi ekliyoruz. Ardından, Golang'da pencerenin etiketlerini oluştururken ifadeyi yazdırmak için println() işlevini kullanan main() işlevi gelir.

Bu programı bir Windows sistemi üzerinde derleyip çalıştırdığımızda “Merhaba Windows örneği!” Konsola mesaj. Yapı kısıtlaması nedeniyle programın diğer işletim sistemlerinde oluşturulmayacağını veya çalıştırılmayacağını unutmayın.



Örnek 3: Windows Dışı Sistem için Golang Derleme Etiketini Ekleme

Bunun tersine, Windows için derleme yaparken kodu hariç tutmak istersek “!” yapı etiketiyle birlikte ünlem işareti.

// + !pencereler oluştur

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Merhaba, Windows hariç!' )

}

Burada, kodun Windows dışındaki platformlarda oluşturulup çalıştırılması gerektiğini belirten bir kısıtlama yönergesi oluşturuyoruz. Windows'un önündeki ünlem işareti (!), bu kodun Windows dışındaki tüm platformlara dahil edilmesi gerektiğini belirtir. Daha sonra, önceki fonksiyondaki gibi aynı programla devam ediyoruz; burada ilk önce paketleri ekliyoruz ve println() fonksiyonuna iletilen mesajı yürütmek için main() fonksiyonunu çağırıyoruz.

Böylece çıktı, işletim sistemi konsollarında mesajı üretir. Derleme kısıtlaması nedeniyle Windows işletim sisteminde çalışmayacağını unutmayın:

Örnek 4: Golang Derleme Etiketini VEYA Mantığıyla Ekleme

Windows VEYA Linux'u hedeflerken kodu dahil etmek için “// +build windows Linux” build etiketini kullanabiliriz.

// +windows Linux'u oluştur

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Merhaba, Windows veya Linux Kullanıcıları' )

}

Burada hem Windows hem de Linux işletim sistemleri için oluşturulması amaçlanan mantıksal OR ile yapı kısıtını uyguluyoruz. “// +build windows Linux” satırı, hedef platform Windows veya Linux olduğunda bu dosyanın build'e dahil edilmesi gerektiğini belirtir. Daha sonra, temel giriş ve çıkış işlevlerini sağlayan Go standart kütüphanesinden “fmt” paketini içe aktarıyoruz. Ana fonksiyonda “fmt” paketindeki Println() fonksiyonunu kullanarak “Hey, Windows veya Linux Kullanıcıları” string ifadesini yazdırıyoruz.

Bu nedenle çıktı aşağıdaki şekilde alınır. Windows veya Linux işletim sistemini kullansak da aynı mesaj oluşturulur:

Örnek 5: Golang Derleme Etiketini AND Mantığıyla Ekleme

Daha karmaşık koşullar oluşturmak için birden fazla derleme etiketi belirtebiliriz. “// +build windows,linux” komutu hem Linux hem de Windows için kod oluşturmak amacıyla kullanılabilir.

// +pencereleri oluştur,386

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Bu 32 bit Windows'tur' )

}

Burada tanımlanan derleme kısıtlaması '// +build windows,386' olup, hedef platform 32 bit Windows olduğunda Go dosyasının build'e dahil edilmesi gerektiğini belirtir. Windows ile 386 arasında mantıksal AND operatörü görevi gören virgül '' kullandığımızı unutmayın. Bu, kodun yapıya dahil edilmesi için her iki koşulun da karşılanması gerektiği anlamına gelir.

Daha sonra, önceki örneğe benzer şekilde, çıktı için Println fonksiyonunu() kullanmak üzere Go standart kütüphanesinden “fmt” paketini içe aktarıyoruz. İfadenin println() işlevine argüman olarak iletildiği programın main() işlevine sahibiz.

Bu programı 32 bit Windows sisteminde derleyip çalıştırdığımızda, belirtilen mesajı çıktı olarak görüntüler. Ancak, onu farklı bir işletim sistemi veya mimari üzerinde oluşturup çalıştırmayı denersek, yapıya dahil edilmeyecektir:

Örnek 6: Belirli Bir İşlev için Golang Derleme Etiketini Ekleme

Ayrıca derleme etiketleri bir dosya içindeki belirli işlevlere de uygulanabilir. Yapı kısıtlamaları nedeniyle artık belirli işlevleri koşullu olarak dahil edebilir veya kaldırabiliriz.

paket ana

içe aktarmak 'fmt'

işlev ana () {

fmt . Yazdır ( 'Merhaba, tadını çıkar!' )

WindowsMessage'ı yazdır ()

}

// +pencereleri oluştur

işlev WindowsMessage'ı yazdır () {

fmt . Yazdır ( 'Windows İşletim Sisteminden Merhaba' )

}

Burada artık başlangıçtaki mesajı yazdırmak için “fmt” paketinin sağladığı Println() yöntemini kullanan main() yöntemine geçiyoruz. Daha sonra printWindowsMessage() fonksiyonunu main() fonksiyonunun altına dağıtıyoruz ve “// +build windows” yapı kısıtını belirliyoruz. Bu, işlevin yalnızca hedef platform Windows olduğunda yapıya dahil edildiğini gösterir.

Son olarak printWindowsMessage() fonksiyonunu, Println() fonksiyonunu kullanarak belirtilen “Windows İşletim Sisteminden Merhaba” mesajını yazdıracak şekilde ayarladık.

Böylece hem genel mesajı hem de platforma özel mesajı görüntüleyen çıktı alınır. Bunu farklı bir işletim sisteminde derleyip çalıştırırsak, printWindowsMessage() işlevinin yapıya dahil edilmeyeceğini ve yalnızca genel mesajın görüntüleneceğini unutmayın:

Çözüm

Go'ya derleme etiketleri eklemek, derleme süreci sırasında kod eklemeyi özelleştirme yeteneği sağlar. Yapı etiketlerinden yararlanarak platforma özgü yapılar oluşturabilir, kodu farklı mimariler için optimize edebilir ve hatta belirli işlevleri veya özellikleri koşullu olarak dahil edebiliriz.