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

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