Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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"]
challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات: قائمة من الأعداد الصحيحة مفصولة بفاصلة (درجات الحرارة بالفهرنهايت).

قم بتحويل كل منها إلى درجة مئوية باستخدام الصيغة C = (F - 32) * 5 / 9 في الحساب الصحيح (اقتطاع باتجاه الصفر، بدون أرقام عشرية). اطبع، في أسطر منفصلة:

  1. درجات الحرارة المئوية، مدمجة بـ ,
  2. تسمية واحدة لكل درجة حرارة مع البادئة 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>" مدمجة بـ ";"
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق

تدرّب بنفسك: Playground لـ Swift