الخطوة (Stride)
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 8 من 56.
ينتقل النطاق خطوة واحدة في كل مرة. عندما تريد حجم خطوة مختلفًا، أو للعد تنازليًا، استخدم stride.
طريقتان: stride(from:to:by:) يتوقف قبل القيمة الثانية (نصف مفتوح)، بينما stride(from:through:by:) قد يتضمنها (مغلق):
for n in stride(from: 0, to: 10, by: 2) {
print(n)
}
// 0, 2, 4, 6, 8for n in stride(from: 10, through: 0, by: -2) {
print(n)
}
// 10, 8, 6, 4, 2, 0يجب أن يكون المعامل by: بالإشارة الصحيحة: موجباً عند العد التصاعدي، وسالباً عند العد التنازلي. في حال عدم التطابق، ستعمل الحلقة التكرارية صفر من المرات.
التحدي
سهلاقرأ ثلاثة أعداد صحيحة (ثلاثة أسطر): start، end، و step. قد تكون الخطوة موجبة أو سالبة. النطاق شامل لكلا الطرفين (استخدم stride(from:through:by:)).
اطبع:
- القيم الموجودة في الـ stride، مفصولة بـ
, - عدد القيم الناتجة
للمدخلات 0 / 10 / 3، المخرجات هي:
0,3,6,9
4للمدخلات 10 / 0 / -2، المخرجات هي:
10,8,6,4,2,0
6ورقة مرجعية
استخدم stride عندما تحتاج إلى حجم خطوة مخصص أو للعد التنازلي.
stride(from:to:by:) — نصف مفتوح (يستثني قيمة النهاية):
for n in stride(from: 0, to: 10, by: 2) { }
// 0, 2, 4, 6, 8stride(from:through:by:) — مغلق (يتضمن قيمة النهاية):
for n in stride(from: 10, through: 0, by: -2) { }
// 10, 8, 6, 4, 2, 0يجب أن تتطابق قيمة by: مع الاتجاه: موجبة عند العد التصاعدي، وسالبة عند العد التنازلي. يؤدي عدم التطابق إلى صفر من التكرارات.
جرّب بنفسك
let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!
// TODO: stride(from:through:by:)، ادمجها بفاصلة، ثم اطبع العدد
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات