Menu
Coddy logo textTech

Dışa Aktarılan ve Aktarılmayan İsimler

Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 4 / 107.

Go'da, bir adın ilk harfi onun görünürlüğünü belirler. Büyük harfle başlayan adlar dışa aktarılan adlardır (diğer paketlerden erişilebilir). Küçük harfle başlayan adlar ise dışa aktarılmayan adlardır (pakete özeldir).

Dışa aktarılan adlar: paketin dışında görünür

type User struct {
    Name  string  // Dışa aktarılmış alan
    Email string  // Dışa aktarılmış alan
}

func CreateUser(name string) User { // Dışa aktarılmış fonksiyon
    return User{Name: name}
}

Dışa aktarılmamış adlar: yalnızca paket içinde görünür

type secret struct {     // Dışa aktarılmamış yapı
    password string      // Dışa aktarılmamış alan
}

func validate() bool {   // Dışa aktarılmamış fonksiyon
    return true
}

Karışık: bazı dışa aktarılmamış alanlara sahip dışa aktarılmış yapı

type Account struct {
    Username string    // Exported - her yerden erişilebilir
    Email    string    // Exported - her yerden erişilebilir
    password string    // Unexported - yalnızca paket içinde
}

Bu adlandırma kuralı, diğer dillerde bulunan public ve private gibi erişim belirleyicilerinin yerini alır.

// Büyük harf   = Dışa aktarılan (public)
// Küçük harf = Dışa aktarılmayan (private)

func SaveData() {}  // Dışa aktarılan
func loadData() {}  // Dışa aktarılmayan

Bu kurala uymak Go'da çok önemlidir. Diğer paketler kodunuzu içe aktardığında yalnızca büyük harfle başlayan adlara erişebilir.

challenge icon

Görev

Orta

Go'nun dışa aktarılan adlandırma kuralına uyması için product.go içindeki tüm adları düzeltin. Şunların ilk harfini büyük yazın:

  • Yapı adı: productProduct
  • Tüm alan adları: name, price, stock
  • Tüm işlev adları: totalValue, displayInfo
  • İşlevlerin içindeki tüm alan başvuruları

Kendin dene

package main

import "fmt"

func main() {
    var name string
    var price float64
    var stock int
    fmt.Scan(&name, &price, &stock)

    p := Product{
        Name:  name,
        Price: price,
        Stock: stock,
    }

    fmt.Println(DisplayInfo(p))
    fmt.Printf("Total Value: %.2f\n", TotalValue(p))
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi