Tekrar - Kütüphane Kartı
Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 6 / 57.
Görev
OrtaLibraryCard sınıfını tamamla. Başlatıcısı üye name değerini ve bir limit değerini (varsayılan 3) alır ve ödünç alınmış kitap olmadan başlar. Kart limitine ulaşmadıysa ve başlık zaten kartta bulunmuyorsa borrow(_:), true döndürür ve başlığı ekler. giveBack(_:), başlığı kaldırdığında true döndürür. status(), başlıklar ödünç alma sırasıyla birlikteyken Ada: 2/3 (Dune, Emma) veya hiçbir şey ödünç alınmadığında Ada: 0/3 döndürür.
Verilen kod, adı, limiti (veya varsayılan değer için boş bir satırı) ve ardından +title ya da -title komutlarını okur. Her komut için ok veya no yazdırır ve son olarak status() değerini yazdırır.
Kodun LibraryCard.swift dosyasına yazılmalıdır. main.swift verilen 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) }
let card = input[1].isEmpty ? LibraryCard(name: input[0]) : LibraryCard(name: input[0], limit: Int(input[1])!)
for cmd in input.dropFirst(2) {
let title = String(cmd.dropFirst())
let done = cmd.hasPrefix("+") ? card.borrow(title) : card.giveBack(title)
print(done ? "ok" : "no")
}
print(card.status())
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