Menu
Coddy logo textTech

Rückblick – Bibliotheksausweis

Teil des Abschnitts Objektorientierte Programmierung der Swift-Journey von Coddy. Lektion 6 von 57.

challenge icon

Aufgabe

Mittel

Vervollständige die Klasse LibraryCard. Ihr Initialisierer erhält den Mitgliedsnamen name und ein limit (Standardwert 3) und beginnt ohne ausgeliehene Bücher. borrow(_:) gibt true zurück und fügt den Titel hinzu, sofern die Karte ihr Limit nicht erreicht hat und diesen Titel nicht bereits enthält. giveBack(_:) gibt true zurück, wenn der Titel entfernt wurde. status() gibt Ada: 2/3 (Dune, Emma) mit den Titeln in der Reihenfolge ihrer Ausleihe zurück oder Ada: 0/3, wenn nichts ausgeliehen ist.

Der bereitgestellte Code liest den Namen, das Limit (oder eine leere Zeile für den Standardwert) und anschließend Befehle +title oder -title. Für jeden Befehl gibt er ok oder no aus und schließlich status().

Dein Code gehört in LibraryCard.swift. main.swift enthält den bereitgestellten Eingabe-/Ausgabecode und darf nicht bearbeitet werden.

Probier es selbst

// Gelieferter Ein-/Ausgabecode: belasse ihn wie er ist
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())

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Swift-Playground