Menu
CoddyTech

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, görünürlüğünü belirler. Büyük harfle başlayan adlar dışa aktarılır (diğer paketlerden erişilebilir). Küçük harfle başlayan adlar dışa aktarılmaz (pakete özeldir).

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

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

func CreateUser(name string) User { // Dışa aktarılan 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
}

Karma: bazı dışa aktarılmamış alanları olan dışa aktarılmış yapı

type Account struct {
    Username string    // Dışa aktarılmış - her yerden erişilebilir
    Email    string    // Dışa aktarılmış - her yerden erişilebilir
    password string    // Dışa aktarılmamış - yalnızca paket içinden erişilebilir
}

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ılmış (genel erişime açık)
// Küçük harf = Dışa aktarılmamış (özel)

func SaveData() {}  // Dışa aktarılmış
func loadData() {}  // Dışa aktarılmamış

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

challenge icon

Görev

Orta

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

  • Yapı adı: product → Product
  • 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