Menu
Coddy logo textTech

Tekrar - Sıcaklık Günlüğü

Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 16 / 57.

challenge icon

Görev

Zor

Küçük bir sıcaklık günlüğü oluşturun. Scale enum'unu (celsius, fahrenheit; ham değerleri C ve F) ve sıcaklığı santigrat cinsinden saklayan Reading struct'ını tamamlayın. Reading, 20C veya 68F gibi metinleri okuyan (diğer tüm durumlarda nil döndüren) statik bir fabrika yöntemi olan parse(_:) yöntemine, hesaplanan fahrenheit özelliğine ve 20.0C / 68.0F döndüren hesaplanan bir label özelliğine sahiptir. TemperatureLog sınıfı, bir okuma dizisini ve her yeni rekoru new high 25.0C olarak kaydeden bir didSet gözlemcisine sahip highest özelliğini tutar.

Sağlanan kod, ayrıştırılan her okumayı günlüğe ekler (veya bad reading: x yazdırır), her okumanın etiketini yazdırır ve son olarak gözlemcinin topladığı kayıtları satır başına bir tane olacak şekilde yazdırır.

Kodunuz Scale.swift, Reading.swift ve TemperatureLog.swift dosyalarına gider. main.swift, sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.

Kendin dene

// Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
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) }

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground