Menu
Coddy logo textTech

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 işlev veya tür, içe aktarma olmadan başka herhangi bir dosyada kullanılabilir:

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

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

Bu program çalıştırıldığında Hello, Ada! yazdırır: 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ın başladığı yer burasıdır. Diğer dosyalar yalnızca bildirimleri içerir:

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

// main.swift
let name = readLine() ?? "friend"   // üst düzey kod main.swift'te sorun değil
print(greeting(for: name))

Genellikle düzen, tür başına bir dosya olacak ve dosya türün adını taşıyacak şekildedir: Dog.swift, Dog türünü içerir; Account.swift ise Account türünü içerir. Bu bölümdeki alıştırmalarda kodunuzu bu dosyalara yazarsınız ve main.swift, genellikle düzenleyemeyeceğ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       // girişi 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ülün her dosyasında görünür kılar:

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

// main.swift
print(hashed("pw"))                  // sorun yok: hashed internal
// print(salt)                       // hata: salt fileprivate
challenge icon

Görev

Kolay

Programın iki dosyası vardır. main.swift bir ad okur ve greeting(for:) sonucunu yazdırır. Ada adı için Hello, Ada! döndürecek veya ad boş olduğunda Hello, friend! döndürecek şekilde Greeting.swift içindeki greeting(for:) işlevini tamamla.

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

Kendin dene

// Sağlanan girdi/çıktı 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