Powtórzenie — karta biblioteczna
Część sekcji Programowanie obiektowe ścieżki Swift w Coddy. Lekcja 6 z 57.
Wyzwanie
ŚredniUzupełnij klasę LibraryCard. Jej inicjalizator przyjmuje nazwę członka name i limit (domyślnie 3) i rozpoczyna działanie bez wypożyczonych książek. borrow(_:) zwraca true i dodaje tytuł, chyba że karta osiągnęła limit lub ma już ten tytuł. giveBack(_:) zwraca true, gdy usunęła tytuł. status() zwraca Ada: 2/3 (Dune, Emma) z tytułami w kolejności wypożyczania albo Ada: 0/3, gdy nic nie jest wypożyczone.
Dostarczony kod odczytuje nazwę, limit (lub pustą linię, aby użyć wartości domyślnej), a następnie polecenia +title lub -title. Dla każdego polecenia wypisuje ok lub no, a na końcu status().
Twój kod umieść w pliku LibraryCard.swift. Plik main.swift zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
// Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
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())
Wszystkie lekcje w sekcji Programowanie obiektowe
1Klasy i obiekty
Praca z plikamiDefiniowanie klasMetody i selfInicjalizatoryKlasy są referencjamiPowtórzenie — karta biblioteczna4Hermetyzacja
Kontrola dostępuTylko do odczytu z zewnątrzOchrona stanuInicjalizatory, które mogą zawieśćPodsumowanie — konto bankowe7Polimorfizm i typy generyczne
PolimorfizmRzutowanie typówFunkcje generyczneTypy generycznePodsumowanie – kalkulator kształtów2Struktury i typy wartościowe
StrukturySemantyka wartościMetody modyfikująceStruktura czy klasaPodsumowanie – element inwentarza5Dziedziczenie
PodklasyPrzesłanianie metodInicjalizatory i superfinal i hierarchiePodsumowanie — hierarchia pracowników8Standardowe protokoły
CustomStringConvertibleEquatableComparableHashablePodsumowanie — własne sortowanie11Projekt: Zarządzanie biblioteką
Książki i czytelnicyWypożyczanie książekPoćwicz samodzielnie: Edytor online Swift