Podsumowanie – rejestr temperatury
Część sekcji Programowanie obiektowe ścieżki Swift w Coddy. Lekcja 16 z 57.
Wyzwanie
TrudnyUtwórz prosty dziennik temperatur. Uzupełnij typ wyliczeniowy Scale (celsius, fahrenheit, z wartościami surowymi C i F) oraz strukturę Reading, która przechowuje temperaturę w stopniach Celsjusza. Reading ma statyczną metodę fabrykującą parse(_:), która odczytuje tekst taki jak 20C lub 68F (zwracając nil w każdym innym przypadku), obliczaną właściwość fahrenheit oraz obliczaną właściwość label, która zwraca 20.0C / 68.0F. Klasa TemperatureLog przechowuje tablicę odczytów oraz właściwość highest z obserwatorem didSet, który zapisuje każdy nowy rekord jako new high 25.0C.
Dostarczony kod dodaje każdy sparsowany odczyt do dziennika (lub wypisuje bad reading: x), wypisuje etykietę każdego odczytu, a na koniec wypisuje zebrane przez obserwator rekordy, po jednym w wierszu.
Umieść swój kod w plikach Scale.swift, Reading.swift i TemperatureLog.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 log = TemperatureLog()
for line in input {
if let r = Reading.parse(line) {
log.add(r)
print(r.label)
} else {
print("bad reading: \(line)")
}
}
for record in log.records { print(record) }
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ążek3Właściwości w szczegółach
Właściwości obliczaneObserwatory właściwościElementy statyczneTypy wyliczeniowe z metodamiPodsumowanie – rejestr temperaturyPoćwicz samodzielnie: Edytor online Swift