Menu
CoddyTech

Rangkuman: Catatan Suhu

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Swift di Coddy. Pelajaran 16 dari 57.

challenge icon

Tantangan

Sulit

Buat log suhu sederhana. Lengkapi enum Scale (celsius, fahrenheit, dengan nilai mentah C dan F) dan struct Reading, yang menyimpan suhu dalam celsius. Reading memiliki factory statis parse(_:) yang membaca teks seperti 20C atau 68F (mengembalikan nil untuk teks lainnya), property komputasi fahrenheit, dan label komputasi yang mengembalikan 20.0C / 68.0F. Class TemperatureLog menyimpan array bacaan dan property highest dengan observer didSet yang mencatat setiap rekor baru sebagai new high 25.0C.

Kode yang disediakan menambahkan setiap bacaan yang berhasil diurai ke log (atau mencetak bad reading: x), mencetak label setiap bacaan, lalu mencetak catatan yang dikumpulkan observer, satu per baris.

Kodemu ditulis di Scale.swift, Reading.swift, dan TemperatureLog.swift. main.swift berisi kode input/output yang disediakan dan tidak boleh diedit.

Coba sendiri

// Kode input/output yang disediakan: biarkan apa adanya
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) }

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Playground Swift