Map
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy. الدرس 23 من 56.
تأخذ map الـ closure وتطبقه على كل عنصر، وتُرجع مصفوفة جديدة من النتائج. المصفوفة الجديدة لها نفس طول المصدر.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 هو اختصار للمعامل الأول للإغلاق (closure). الصيغة الأطول توضح اسم المعامل ونوع الإرجاع:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}يمكن لـ map أيضاً تغيير نوع العنصر. إن تحويل [Int] عبر closure يعيد String يمنحك [String]:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]التحدي
سهلاقرأ سطراً واحداً من المدخلات: قائمة من الأعداد الصحيحة مفصولة بفاصلة (درجات الحرارة بالفهرنهايت).
قم بتحويل كل منها إلى درجة مئوية باستخدام الصيغة C = (F - 32) * 5 / 9 في الحساب الصحيح (اقتطاع باتجاه الصفر، بدون أرقام عشرية). اطبع، في أسطر منفصلة:
- درجات الحرارة المئوية، مدمجة بـ
, - تسمية واحدة لكل درجة حرارة مع البادئة
F=<f> C=<c>، مدمجة بـ;
استخدم map لكلا السطرين.
للمدخلات 32,212,98,0، المخرجات هي:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17جرّب بنفسك
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: السطر 1 = celsius مدمجة بـ ","
// TODO: السطر 2 = التسميات "F=<f> C=<c>" مدمجة بـ ";"
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift