Swift Academy · درس

النطاقات كمجموعات

طبّق map و filter على تسلسلات النطاقات.

الدرس 4 من 413 خطوة

النطاقات كمجموعات درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

النطاقات تسلسلات

النطاق أكثر من مجرد امتداد من الأرقام؛ فهو تسلسل يمكنك تحويله باستخدام أساليب المجموعات مثل map وfilter.

let squares = (1...5).map { $0 * $0 }
print(squares)

تطبيق map على نطاق

تحوّل (1...n).map { ... } كل رقم إلى قيمة جديدة، فتنتج مصفوفة. لاحظ الأقواس المحيطة بالنطاق.

let doubled = (1...4).map { $0 * 2 }
print(doubled)

سبب استخدام الأقواس

يجب إحاطة النطاق بأقواس قبل استدعاء أسلوب، وإلا فسّرت Swift الصياغة بشكل خاطئ. الصياغة (1...5).map صحيحة.

let labels = (1...3).map { "Item \($0)" }
print(labels)

تصفية نطاق

تُبقي filter على القيم التي تحقق شرطًا فقط، وتعيد مصفوفة بالقيم المطابقة.

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)

اختزال نطاق

تجمع reduce كل القيم في قيمة واحدة. نجمع هنا الأرقام من 1 إلى 100.

let total = (1...100).reduce(0, +)
print(total)

التحويل إلى مصفوفة

يؤدي تغليف النطاق داخل Array(...) إلى إنشاء كل قيمة وتخزينها في مصفوفة.

let nums = Array(1...5)
print(nums)
print(nums.count)

forEach على نطاق

يمكنك استدعاء forEach لتشغيل closure لكل قيمة، على نحو مشابه لحلقة for.

(1...3).forEach { n in
    print("Tick \(n)")
}

تسلسل العمليات

بما أن كل عملية تعيد مجموعة، يمكنك تسلسل filter ثم map.

let result = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }
print(result)

إنشاء بيانات البحث

يُعد تطبيق map على نطاق طريقة سريعة لإنشاء بيانات اختبار أو جداول بحث.

let table = (1...5).map { (n: $0, square: $0 * $0) }
for row in table {
    print("\(row.n) -> \(row.square)")
}

contains والتجميعات

تدعم النطاقات أيضًا استعلامات تجميعية مثل contains وmin وmax.

let r = 5...15
print(r.contains(10))
print(r.min() ?? 0)
print(r.max() ?? 0)

حساب القيم المطابقة

ادمج filter مع count لحساب عدد القيم التي تحقق شرطًا.

let multiplesOf3 = (1...30).filter { $0 % 3 == 0 }.count
print(multiplesOf3)

تحقق سريع

اختبر استخدام النطاقات كمجموعات.

مراجعة: النطاقات كمجموعات

النطاقات تسلسلات، لذا يمكنك استدعاء map وfilter وreduce وforEach عليها، مع تذكّر الأقواس. استخدم Array(range) لإنشاء القيم فعليًا.

print((1...5).map { $0 * $0 })
البدء مجانًا

تعلم Swift مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
122
الدروس
409

الأسئلة الشائعة

هل درس «النطاقات كمجموعات» مجاني؟

نعم — نص درس «النطاقات كمجموعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «النطاقات كمجموعات»؟

طبّق map و filter على تسلسلات النطاقات. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «النطاقات كمجموعات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. النطاقات المغلقة وشبه المفتوحة
  2. النطاقات أحادية الجانب
  3. العد باستخدام stride(from:to:by:)
  4. النطاقات كمجموعات
← العودة إلى Swift Academy