Go Software Development

Golang Packages

Written by Burak Yılmaz

Golang’de paketler diğer dillerdeki kütüphaneler veya modüllerle aynı amaca hizmet eder. Yeniden kullanılabilirlik, modülerlik, encapsulation işlemlerini destekler.

Paket ismi best practice olarak içerisinde bulunduğu klasör ile aynı olmalıdır fakat bu zorunlu değildir. Paket tanımlama package keywordu ile yapılır. Aşağıdaki örnekte de gördüğünüz gibi testservice’i yazarken, kaynak kodun en üstünde paketi tanımladık ve adını içerisinde bulunduğu klasörün adıyla(services) aynı belirttik. Her bir kaynak kodunda paket tanımlaması yapmak zorunludur.

Yukarıda yazdığımız paketi başka bir paket içerisinde kullanacağımız zaman, import etmemiz gerekir. Paketin path’ini vererek import edebiliriz veya Github üzerinde bir repository’deki path’ini verebiliriz.

package import

Golang’de erişim belirleyici olarak fonksiyon veya değişkenlerin ilk harfi kullanılır.Diğer dillerde bu iş için public, private vs. keywordleri kullanılırken, Go’da İlk harf büyük ise paket dışından erişilebilir, küçük ise dışarıdan erişilemez. Örnek olarak services paketi içerisinde bir tane ilk harfi büyük bir tane de küçük bir fonksiyon tanımlayıp, main paketi içerisinden çağırmayı deneyelim.

Plus – divide

Yukarıdaki ekran görüntüsünde de göreceğiniz gibi Plus ve divide fonksiyonlarını tanımladık. Başka bir paketten divide fonksiyonunu çağırmak istediğimizde kodumuz build olmadı ve unexported bir fonksiyona erişemezsiniz dedi.

About the author

Burak Yılmaz