Zusammenfassung – Inventarelement
Teil des Abschnitts Objektorientierte Programmierung der Swift-Journey von Coddy. Lektion 11 von 57.
Aufgabe
MittelVervollständige die Struktur StockItem mit den Eigenschaften name und quantity. Füge die mutierenden Methoden receive(_:) (addiert) und ship(_:) (subtrahiert nur, wenn genügend Bestand vorhanden ist, und gibt zurück, ob dies geschehen ist) sowie eine nicht mutierende Methode label() hinzu, die tea: 12 oder bei der Menge 0 tea: out of stock zurückgibt.
Vervollständige anschließend process(start:commands:): Die Funktion erstellt das Element, behält vor dem ersten Befehl eine Kopie davon namens opening, wendet die Befehle an und gibt für jede abgelehnte Lieferung eine Zeile (cannot ship 5) zurück, anschließend now gefolgt vom Label des Elements und was gefolgt vom Label von opening.
Der bereitgestellte Code liest das Element als name,quantity und die Befehle +n oder -n ein und gibt jede zurückgegebene Zeile aus.
Dein Code gehört in StockItem.swift und Functions.swift. main.swift enthält den bereitgestellten Ein-/Ausgabecode und kann nicht bearbeitet werden.
Probier es selbst
// Bereitgestellter Ein-/Ausgabecode: belasse ihn wie er ist
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) }
Alle Lektionen in Objektorientierte Programmierung
1Klassen und Objekte
Arbeiten mit DateienKlassen definierenMethoden und selfInitialisiererKlassen sind ReferenzenRückblick – Bibliotheksausweis4Kapselung
ZugriffskontrolleVon außen schreibgeschütztZustand schützenFehlschlagende InitialisiererRückblick – Bankkonto7Polymorphismus und Generika
PolymorphismusTypumwandlungGenerische FunktionenGenerische TypenZusammenfassung – Shape-Rechner2Strukturen und Werttypen
StrukturenWertsemantikVerändernde MethodenStruktur oder KlasseZusammenfassung – Inventarelement5Vererbung
UnterklassenMethoden überschreibenInitialisierer und superfinal und HierarchienRückblick – Mitarbeiterhierarchie8Standardprotokolle
CustomStringConvertibleEquatableComparableHashableRückblick – Benutzerdefiniertes Sortieren11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Swift-Playground