نظرة عامة على المشروع
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 49 من 56.
المشروع الثاني هو محرك اختبارات. الحالة هي قائمة من الأسئلة، كل منها عبارة عن صف (tuple) من (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]خلال الدروس الأربعة القادمة، ستضيف ميزات واحدة تلو الأخرى:
- إضافة الأسئلة وطرحها بالترتيب
- تقييم الإجابات (غير حساسة لحالة الأحرف، ومقلمة)
- التصفية حسب الفئة
- تلخيص التشغيل مع تفصيل لكل فئة
مثل متتبع العادات (Habit Tracker)، كل درس مستقل بذاته، ستقوم بإعادة بناء بنك الأسئلة في الجزء العلوي من كل ملف.
التحدي
مبتدئللبدء، اكتب كود إعداد البيانات:
- قم بتهيئة مصفوفة فارغة من الأسئلة (
[(String, String, String)]) - اطبع العدد (count)
- اطبع ما إذا كانت المصفوفة فارغة (isEmpty)
المخرجات المتوقعة هي:
0
trueورقة مرجعية
يقوم محرك الاختبارات بتخزين الأسئلة كقائمة من الصفوف (tuples) مع (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]خصائص المصفوفة المفيدة:
questions.count // عدد العناصر
questions.isEmpty // true إذا لم تكن هناك عناصرجرّب بنفسك
// TODO: قم بتعريف [(String, String, String)] فارغة تسمى questions،
// ثم اطبع count و isEmpty
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات