Menu
Coddy logo textTech

Podsumowanie – rejestr temperatury

Część sekcji Programowanie obiektowe ścieżki Swift w Coddy. Lekcja 16 z 57.

challenge icon

Wyzwanie

Trudny

Utwó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

Poćwicz samodzielnie: Edytor online Swift