Riepilogo - Articolo di inventario
Fa parte della sezione Programmazione orientata agli oggetti del percorso Swift di Coddy. Lezione 11 di 57.
Sfida
MedioCompleta la struct StockItem con le proprietà name e quantity. Aggiungi i metodi mutanti receive(_:) (aggiunge) e ship(_:) (sottrae solo se le scorte sono sufficienti, restituendo se l’operazione è riuscita), e un metodo non mutante label() che restituisce tea: 12 oppure tea: out of stock quando la quantità è 0.
Poi completa process(start:commands:): crea l'articolo, ne conserva una copia chiamata opening prima del primo comando, applica i comandi e restituisce una riga per ogni spedizione rifiutata (cannot ship 5), poi now seguito dall'etichetta dell'articolo e was seguito dall'etichetta di opening.
Il codice fornito legge l'articolo nel formato name,quantity e i comandi +n o -n, quindi stampa ogni riga restituita.
Il tuo codice va inserito in StockItem.swift e Functions.swift. main.swift contiene il codice di input/output fornito e non può essere modificato.
Provalo tu
// Código de entrada/salida proporcionado: mantenlo tal como está
var input: [String] = []
while let line = readLine() { input.append(line) }
let p = input[0].split(separator: ",").map(String.init)
let item = StockItem(name: p[0], quantity: Int(p[1])!)
for line in process(start: item, commands: Array(input.dropFirst())) { print(line) }
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