Birden çok dosya
- Go kursu
- Başlangıç
- Ders 10/90
- 4 dk
Bir paketin birden çok .go dosyasından oluşabileceğini öğrenirsin.
Birden çok dosya
Bir paket birden çok .go dosyasından oluşabilir. Aynı paket adını taşıyan tüm dosyalar aynı paketin parçası sayılır. Bu, büyük paketleri bölmenin temel yoludur.
Örneğin package utils bildiren string_utils.go ve number_utils.go aynı utils paketindedir. Bir dosyadaki tanım diğerinde görünür.
Derleme go build ile paket bazında yapılır; dosya bazında değil. Tüm paket dosyaları birlikte derlenir.
Paket görünürlüğü
Go'da görünürlük büyük/küçük harfle belirlenir. Büyük harfle başlayan tanımlar dışa aktarılmış sayılır ve diğer paketlerden erişilebilir. Küçük harfle başlayanlar paket içindedir.
Örneğin Println dışa aktarılmıştır, print ise fmt paketi içindedir. Bu mekanizma Java'daki public/private yerine geçer.
Aynı paketteki dosyalar arasında küçük harfli tanımlar da görünür; çünkü paket tek bir kapsamdır.
Uygulama Dışa aktarılan ad
Bir paket içindeki görünürlüğü dene: büyük harfle başlayan Topla(a, b int) int (dışa aktarılır) ve küçük harfle başlayan ikiKat(n int) int (paket içi) fonksiyonlarını yaz. fmt.Println(Topla(2, 3), ikiKat(4)) yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func Topla(a, b int) int { return a + b }
func ikiKat(n int) int { return n * 2 }
func main() {
fmt.Println(Topla(2, 3), ikiKat(4))
}Beklenen çıktı
5 8
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aynı paketteki iki dosya birbirinin tanımlarını görebilir mi?
- Hayır, sadece dışa aktarılanları
- Yalnızca aynı dosyadakıler
- Evet, tüm tanımlar Doğru cevap
- Yalnızca büyük harfli olanlar
Açıklama: Aynı paketteki tüm tanımlar dosyalar arası görünür.
2 Aynı paket
string_utils.go ve number_utils.go dosyaları:
____ utils
string_utils.go ve number_utils.go dosyaları:
package utils
Açıklama: Aynı package bildirimi dosyaları tek paket yapar.
3 Görünürlük eşleştirmesi
| Kavram | Anlamı |
|---|---|
Println |
Dışa aktarılmış |
print |
Paket içi |
fmt.Println |
Dışarıdan erişim |
hello |
Küçük harfli |