Prestito dei libri
Fa parte della sezione Programmazione orientata agli oggetti del percorso Swift di Coddy. Lezione 51 di 57.
Sfida
FacileAggiungi il comando BORROW. Mantieni funzionanti esattamente come prima tutti i comandi dei passaggi precedenti.
BORROW <name> <id>: verifica in quest’ordine e rispondi con il primo problema:no member bo,no book 9,Dune is not available,ada has reached the limit(i membri possono prendere in prestito al massimo 2 libri). Altrimenti registra il prestito sia sul libro sia sul membro e rispondiada borrowed Dune.
Il codice fornito passa ogni riga di input a library.handle(_:) e stampa ogni risposta restituita su una riga separata. I nomi dei membri sono parole singole in minuscolo, gli ID dei libri sono numeri interi e l’input contiene solo i comandi descritti finora. Qualsiasi altro comando risponde unknown command.
Il tuo codice va inserito in Book.swift, Member.swift e Library.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 library = Library()
for line in input {
for reply in library.handle(line) { print(reply) }
}
Tutte le lezioni di Programmazione orientata agli oggetti
1Classi e oggetti
Lavorare con i fileDefinire le classiMetodi e selfInizializzatoriLe classi sono riferimentiRiepilogo - Tessera della biblioteca4Incapsulamento
Controllo degli accessiSola lettura dall’esternoProteggere lo statoInizializzatori che possono fallireRiepilogo - Conto bancario7Polimorfismo e tipi generici
PolimorfismoCasting dei tipiFunzioni genericheTipi genericiRipasso - Calcolatore di forme2Struct e tipi valore
Le structSemantica dei valoriMetodi mutantiStruct o classeRiepilogo - Articolo di inventario5Ereditarietà
SottoclassiSovrascrivere i metodiInizializzatori e superfinal e gerarchieRiepilogo - Gerarchia dei dipendenti8Protocolli standard
CustomStringConvertibleEquatableComparableHashableRiepilogo - Ordinamento personalizzato11Progetto: Gestione della biblioteca
Libri e utentiPrestito dei libriEsercitati da solo: Playground Swift