Menu
Coddy logo textTech

Riepilogo - Tessera della biblioteca

Fa parte della sezione Programmazione orientata agli oggetti del percorso Swift di Coddy. Lezione 6 di 57.

challenge icon

Sfida

Medio

Completa la classe LibraryCard. Il suo inizializzatore accetta il membro name e un limit (predefinito: 3) e inizia senza libri presi in prestito. borrow(_:) restituisce true e aggiunge il titolo, a meno che la tessera non abbia raggiunto il limite o contenga già quel titolo. giveBack(_:) restituisce true quando ha rimosso il titolo. status() restituisce Ada: 2/3 (Dune, Emma) con i titoli nell'ordine in cui sono stati presi in prestito, oppure Ada: 0/3 quando non è stato preso in prestito nulla.

Il codice fornito legge il nome, il limite (oppure una riga vuota per usare il valore predefinito) e poi i comandi +title o -title. Stampa ok o no per ogni comando e infine status().

Il tuo codice va inserito in LibraryCard.swift. main.swift contiene il codice di input/output fornito e non può essere modificato.

Provalo tu

// Codice di input/output fornito: lascialo così com'è
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())

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Playground Swift