المغلقة مقابل نصف المفتوحة
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy. الدرس 7 من 56.
تحتوي Swift على عاملي نطاق يبدوان متطابقين تقريبًا، لكنهما يعنيان أشياء مختلفة.
a...b هو النطاق المغلق. وهو يتضمن b:
for i in 1...3 { print(i) }
// 1
// 2
// 3a..<b هو النطاق نصف المفتوح. يتوقف قبل b:
for i in 1..<3 { print(i) }
// 1
// 2النطاق نصف المفتوح هو الخيار الطبيعي عندما يكون لديك عدد: يغطي 0..<arr.count كل فهرس صالح في المصفوفة. استخدم النطاق المغلق عندما تكون النهايتان كلتاهما قيمتين فعليتين تهمّك (مثل نطاق درجات أو حدّ للدرجة شامل).
التحدي
سهلاقرأ عددين صحيحين (في سطرين): a وb، بحيث a <= b. اطبع ثلاثة أسطر:
- القيم في المجال المغلق
a...b، مفصولة باستخدام,في سطر واحد - القيم في المجال نصف المفتوح
a..<b، مفصولة باستخدام,(أو سطرًا فارغًا عندما يكون المجال فارغًا) - قيمة sum لكل قيمة في المجال المغلق
بالنسبة للإدخال 1 ثم 5، يكون الناتج:
1,2,3,4,5
1,2,3,4
15جرّب بنفسك
let a = Int(readLine()!)!
let b = Int(readLine()!)!
// TODO: اطبع النطاق المغلق مدمجًا، النطاق نصف المفتوح مدمجًا، مجموع النطاق المغلق
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift