복습 - 온도 기록
Coddy Swift 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 57개 중 16번째.
챌린지
어려움간단한 온도 로그를 만드세요. 열거형 Scale(celsius, fahrenheit, 원시 값 C 및 F)과 온도를 섭씨로 저장하는 구조체 Reading을 완성하세요. Reading에는 20C 또는 68F와 같은 텍스트를 읽는 정적 팩토리 parse(_:)가 있으며(그 외의 값에는 nil 반환), 계산 프로퍼티 fahrenheit와 20.0C / 68.0F를 반환하는 계산 프로퍼티 label이 있습니다. 클래스 TemperatureLog는 읽기 값 배열과, didSet 옵저버를 포함한 highest 프로퍼티를 유지하며, 이 옵저버는 새로운 최고 기록을 new high 25.0C와 같이 기록합니다.
제공된 코드는 파싱된 각 읽기 값을 로그에 추가하고(또는 bad reading: x를 출력하고), 각 읽기의 레이블을 출력한 다음, 마지막으로 옵저버가 수집한 기록을 한 줄에 하나씩 출력합니다.
코드는 Scale.swift, Reading.swift 및 TemperatureLog.swift에 작성하세요. main.swift에는 제공된 입력/출력 코드가 들어 있으며 수정할 수 없습니다.
직접 해보기
// 제공된 입력/출력 코드: 그대로 유지하세요
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) }
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드