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ırEriş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üzeyindedirGörev
KolayProgram 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)) }
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
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıfları TanımlamaMetotlar ve selfBaşlatıcılarSınıflar ReferanstırTekrar - Kütüphane Kartı4Kapsülleme
Erişim DenetimiDışarıdan Salt OkunurDurumu KorumaBaşarısız Olabilen BaşlatıcılarTekrar - Banka Hesabı7Polimorfizm ve Generic'ler
PolimorfizmTür DönüşümüGeneric FonksiyonlarGeneric TürlerTekrar - Şekil Hesaplayıcı2Struct Yapıları ve Değer Türleri
Struct YapılarıDeğer SemantiğiDeğiştirici MetotlarStruct mı Class mıTekrar - Envanter Öğesi5Kalıtım
Alt sınıflarMetotları Geçersiz KılmaBaşlatıcılar ve superfinal ve HiyerarşilerTekrar - Çalışan Hiyerarşisi11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Swift playground