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

Dışa aktarılan isimler — paketin dışından görülebilir

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ılmayan isimler — yalnızca paket içinde görünür

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

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

Karma — bazı dışa aktarılmamış alanlara sahip dışa aktarılmış struct

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ış - sadece paket içinden
}

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 esastır. Diğer paketler kodunuzu içe aktardığında, yalnızca büyük harfle başlayan isimlere erişebilirler.

challenge icon

Görev

Orta

product.go dosyasındaki tüm isimleri Go'nun dışa aktarılan (exported) adlandırma kuralına uyacak şekilde düzeltin. Şu öğelerin ilk harfini büyük yapın:

  • Struct adı: productProduct
  • Tüm alan (field) adları: name, price, stock
  • Tüm fonksiyon adları: totalValue, displayInfo
  • Fonksiyonların içindeki tüm alan referansları

Kopya kağıdı

Go'da, bir ismin ilk harfi onun görünürlüğünü belirler:

  • Büyük harf = Dışa aktarılan (diğer paketlerden erişilebilir)
  • Küçük harf = Dışa aktarılmayan (pakete özel)

Dışa aktarılan isimler:

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ılmayan isimler:

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

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

Karma görünürlük:

type Account struct {
    Username string    // Dışa aktarılan - her yerden erişilebilir
    Email    string    // Dışa aktarılan - her yerden erişilebilir
    password string    // Dışa aktarılmayan - sadece paket içinden
}

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

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