Menu
CoddyTech

Dosyalarla Çalışma

Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 1 / 57.

Gerçek programlar birkaç dosyaya bölünür. Swift'te bir uygulamanın her .swift dosyası tek bir modül hâlinde birlikte derlenir; bu nedenle bir dosyada tanımlanan bir işlev veya tür, herhangi bir başka dosyada import olmadan kullanılabilir:

// Greeting.swift
func greeting(for name: String) -> String {
    "Hello, \(name)!"
}

// main.swift
print(greeting(for: "Ada"))

Bu programı çalıştırmak Hello, Ada! çıktısını verir: main.swift, Greeting.swift içinde bulunan işlevi çağırır.

Yalnızca bir dosya, herhangi bir işlevin veya türün dışında kendi başına çalışan kod olan üst düzey ifadeleri içerebilir. Bu dosya main.swift dosyasıdır ve program burada başlar. Diğer dosyalar yalnızca bildirimler içerir:

// Greeting.swift
func greeting(for name: String) -> String { "Hello, \(name)!" }
// print("hi")      // hata: burada en üst düzeyde ifadelere izin verilmez

// main.swift
let name = readLine() ?? "friend"   // en üst düzeydeki kod main.swift dosyasında kullanılabilir
print(greeting(for: name))

Alışılmış düzen, her dosyada türün adıyla adlandırılmış tek bir tür bulunmasıdır: Dog.swift, Dog'u; Account.swift ise Account'u içerir. Bu bölümdeki alıştırmalarda kodunuzu bu dosyalara yazarsınız; main.swift ise genellikle düzenleyemediğiniz, sağlanan girdi/çıktı kodunu içerir. Düzenleyici her dosyayı bir sekme olarak gösterir.

Dog.swift        // class Dog { ... }
Account.swift    // struct Account { ... }
main.swift       // girdiyi okur ve sonuçları yazdırır

Erişim denetimi dosyalar için de geçerlidir. private ve fileprivate, bir bildirimi diğer dosyalardan gizlerken varsayılan olan internal, onu modüldeki her dosyada görünür kılar:

// Secret.swift
fileprivate let salt = "x7"          // yalnızca bu dosya ona erişebilir
func hashed(_ s: String) -> String { s + salt }

// main.swift
print(hashed("pw"))                  // sorun yok: hashed internal erişim düzeyindedir
// print(salt)                       // hata: salt fileprivate erişim düzeyindedir
challenge icon

Görev

Kolay

Program iki dosyadan oluşuyor. main.swift bir ad okur ve greeting(for:) sonucunu yazdırır. Greeting.swift dosyasındaki greeting(for:) işlevini tamamlayarak, Ada adı için Hello, Ada! döndürmesini veya ad boş olduğunda Hello, friend! döndürmesini sağlayın.

Kodunuzu Greeting.swift dosyasına yazın. main.swift sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.

Kendin dene

// Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
var input: [String] = []
while let line = readLine() { input.append(line) }
for name in input { print(greeting(for: name)) }
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: Swift playground