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