مراجعة - سجل درجات الحرارة
جزء من قسم البرمجة كائنية التوجه في رحلة Swift على Coddy. الدرس 16 من 57.
التحدي
صعبأنشئ سجلًا صغيرًا لدرجات الحرارة. أكمل التعداد Scale (celsius، fahrenheit، مع القيم الخام 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) }
جميع دروس البرمجة كائنية التوجه
1الأصناف والكائنات
العمل مع الملفاتتعريف الأصنافالأساليب وselfالمُهيِّئاتالأصناف هي مراجعمراجعة - بطاقة المكتبة4التغليف
التحكم في الوصولللقراءة فقط من الخارجحماية الحالةالمهيئات القابلة للفشلمراجعة - الحساب البنكي7تعدد الأشكال والأنواع العامة
تعدد الأشكالتحويل الأنواعالدوال العامةالأنواع العامةمراجعة - حاسبة الأشكال3الخصائص بتعمّق
الخصائص المحسوبةمراقبو الخصائصالأعضاء الثابتةالتعدادات مع الدوالمراجعة - سجل درجات الحرارةتدرّب بنفسك: Playground لـ Swift