Menu
Coddy logo textTech

Zusammenfassung – Inventarelement

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

challenge icon

Aufgabe

Mittel

Vervollstä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

Übe selbstständig: Swift-Playground