Rückblick – Inventar
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy. Lektion 17 von 56.
Aufgabe
MittelSie verfolgen den Lagerbestand eines Geschäfts. Lesen Sie eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von Operationen für ein anfangs leeres [String: Int] namens stock. Jede Operation ist eine der folgenden:
in:<item>:<qty>fügt die Menge zum Artikel hinzu (verwenden Sie das Default-Subscript-Muster)out:<item>:<qty>subtrahiert die Menge. Wenn die resultierende Menge0oder negativ ist, entfernen Sie den Schlüssel vollständig.
Nachdem Sie jede Operation angewendet haben, geben Sie Folgendes aus:
- Eine Zeile pro verbleibendem Artikel, alphabetisch sortiert, im Format
<item>: <qty> Total units: <n>über alle verbleibenden Werte hinweg
Für die Eingabe in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 lautet die Ausgabe:
apple: 6
Total units: 6Probier es selbst
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: Jede Operation als Art:Gegenstand:Menge parsen; in addiert, out subtrahiert;
// Schlüssel entfernen, deren Menge auf <= 0 fällt; sortierte Zeilen + Summe ausgeben
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimSuchen in StringsAufteilen und ZusammenfügenTeilstrings ersetzenRückblick – Benutzernamen prüfen4Mengen
Mengen erstellenVereinigung und SchnittmengeSubtraktion und symmetrische DifferenzTeilmenge und ObermengeWiederholung – Tag-Filter7Projekt – Gewohnheitstracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteBereichsmethodenBereiche in SwitchRückblick – Kalender-Raster5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerketten von Map, Filter und ReduceRückblick – Wortstatistik3Wörterbücher
Wörterbücher deklarierenOptionale SucheWörterbücher aktualisierenWörterbücher durchlaufenWerte gruppierenRückblick – Inventar6Funktionen höherer Ordnung Teil 2
compactMapflatMapsorted(by:)Pipelines erstellenRückblick – BestenlisteÜbe selbstständig: Swift-Playground