סיכום – יומן טמפרטורה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Swift של Coddy. שיעור 16 מתוך 57.
אתגר
קשהבנו יומן טמפרטורות קטן. השלימו את המניין Scale (celsius, fahrenheit, עם ערכי raw C ו-F) ואת המבנה Reading, ששומר את הטמפרטורה בצלזיוס. ל-Reading יש מפעל סטטי parse(_:) שקורא טקסט כמו 20C או 68F (ומחזיר nil לכל דבר אחר), מאפיין מחושב fahrenheit, ותווית מחושבת label שמחזירה 20.0C / 68.0F. המחלקה TemperatureLog שומרת מערך של קריאות ומאפיין highest עם צופה didSet שמתעד כל שיא חדש בתור 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 אונליין