Menu
Coddy logo textTech

Riepilogo - Registro delle temperature

Fa parte della sezione Programmazione orientata agli oggetti del percorso Swift di Coddy. Lezione 16 di 57.

challenge icon

Sfida

Difficile

Crea un piccolo registro delle temperature. Completa l'enum Scale (celsius, fahrenheit, con valori raw C e F) e la struct Reading, che memorizza la temperatura in gradi Celsius. Reading ha una factory statica parse(_:) che legge testo come 20C o 68F (restituendo nil per qualsiasi altro valore), una proprietà calcolata fahrenheit e una proprietà calcolata label che restituisce 20.0C / 68.0F. La classe TemperatureLog conserva un array di letture e una proprietà highest con un observer didSet che registra ogni nuovo record come new high 25.0C.

Il codice fornito aggiunge ogni lettura analizzata al registro (oppure stampa bad reading: x), stampa l'etichetta di ogni lettura e infine stampa, una per riga, le registrazioni raccolte dall'observer.

Il tuo codice va inserito in Scale.swift, Reading.swift e TemperatureLog.swift. main.swift contiene il codice di input/output fornito e non può essere modificato.

Provalo tu

// Codice di input/output fornito: lascialo così com'è
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) }

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Playground Swift