Podsumowanie – element inwentarza
Część sekcji Programowanie obiektowe ścieżki Swift w Coddy. Lekcja 11 z 57.
Wyzwanie
ŚredniUzupełnij strukturę StockItem o właściwości name i quantity. Dodaj metody mutujące receive(_:) (dodaje) i ship(_:) (odejmuje tylko wtedy, gdy zapas jest wystarczający, zwracając informację, czy się to udało), a także niemutującą metodę label(), która zwraca tea: 12 lub tea: out of stock dla ilości 0.
Następnie uzupełnij process(start:commands:): funkcja tworzy element, przed pierwszym poleceniem zachowuje jego kopię o nazwie opening, wykonuje polecenia i zwraca po jednym wierszu dla każdej odmówionej wysyłki (cannot ship 5), a następnie now , po którym następuje etykieta elementu, oraz was , po którym następuje etykieta elementu opening.
Dostarczony kod odczytuje element w formacie name,quantity oraz polecenia +n lub -n i wyświetla każdy zwrócony wiersz.
Umieść swój kod w plikach StockItem.swift i Functions.swift. Plik main.swift zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
// Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
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) }
Wszystkie lekcje w sekcji Programowanie obiektowe
1Klasy i obiekty
Praca z plikamiDefiniowanie klasMetody i selfInicjalizatoryKlasy są referencjamiPowtórzenie — karta biblioteczna4Hermetyzacja
Kontrola dostępuTylko do odczytu z zewnątrzOchrona stanuInicjalizatory, które mogą zawieśćPodsumowanie — konto bankowe7Polimorfizm i typy generyczne
PolimorfizmRzutowanie typówFunkcje generyczneTypy generycznePodsumowanie – kalkulator kształtów2Struktury i typy wartościowe
StrukturySemantyka wartościMetody modyfikująceStruktura czy klasaPodsumowanie – element inwentarza5Dziedziczenie
PodklasyPrzesłanianie metodInicjalizatory i superfinal i hierarchiePodsumowanie — hierarchia pracowników8Standardowe protokoły
CustomStringConvertibleEquatableComparableHashablePodsumowanie — własne sortowanie11Projekt: Zarządzanie biblioteką
Książki i czytelnicyWypożyczanie książekPoćwicz samodzielnie: Edytor online Swift