Map
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy. الدرس 23 من 56.
تأخذ map إغلاقًا وتطبّقه على كل عنصر، ثم تُرجع مصفوفة جديدة بالنتائج. للمصفوفة الجديدة الطول نفسه مثل المصدر.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 هو اختصار للمعامل الأول في الإغلاق. يوضّح الشكل الأطول اسم المعامل ونوع القيمة المُعادة:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}يمكن لـ map أيضًا تغيير نوع العنصر. يؤدي تطبيق [Int] عبر إغلاق يعيد 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