Riepilogo - Registro delle temperature
Fa parte della sezione Programmazione orientata agli oggetti del percorso Swift di Coddy. Lezione 16 di 57.
Sfida
DifficileCrea 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
1Classi e oggetti
Lavorare con i fileDefinire le classiMetodi e selfInizializzatoriLe classi sono riferimentiRiepilogo - Tessera della biblioteca4Incapsulamento
Controllo degli accessiSola lettura dall’esternoProteggere lo statoInizializzatori che possono fallireRiepilogo - Conto bancario7Polimorfismo e tipi generici
PolimorfismoCasting dei tipiFunzioni genericheTipi genericiRipasso - Calcolatore di forme2Struct e tipi valore
Le structSemantica dei valoriMetodi mutantiStruct o classeRiepilogo - Articolo di inventario5Ereditarietà
SottoclassiSovrascrivere i metodiInizializzatori e superfinal e gerarchieRiepilogo - Gerarchia dei dipendenti8Protocolli standard
CustomStringConvertibleEquatableComparableHashableRiepilogo - Ordinamento personalizzato11Progetto: Gestione della biblioteca
Libri e utentiPrestito dei libri3Le proprietà in dettaglio
Proprietà calcolateObserver delle proprietàMembri staticiEnum con metodiRiepilogo - Registro delle temperatureEsercitati da solo: Playground Swift