0Pricing
Swift Academy · درس

مطابقة النطاقات والأزواج

استخدم switch مع النطاقات العددية وأشكال الأزواج.

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

مطابقة نطاق

يمكن للحالة مطابقة نطاق كامل من القيم باستخدام معاملات النطاق مثل 1...5. فإذا وقعت القيمة ضمن النطاق، تُنفَّذ الحالة.

let score = 85
switch score {
case 0..<50:
    print("Fail")
case 50...100:
    print("Pass")
default:
    print("Invalid")
}

النطاق المغلق مقابل نصف المفتوح

استخدم النطاقات المغلقة (...) لتضمين الحد الأعلى، والنطاقات نصف المفتوحة (..<) لاستبعاده. اختر حدودًا لا تتداخل.

let age = 18
switch age {
case 0..<13:
    print("Child")
case 13..<20:
    print("Teen")
default:
    print("Adult")
}

ترتيب حالات النطاق

تفحص Swift الحالات من الأعلى إلى الأسفل وتنفذ أول حالة مطابقة، لذا تحافظ النطاقات غير المتداخلة على سلوك يمكن التنبؤ به.

let temp = 30
switch temp {
case ..<0:
    print("Freezing")
case 0..<20:
    print("Cool")
case 20...:
    print("Warm")
default:
    print("?")
}

استخدام switch مع tuple

يمكنك استخدام switch مع tuple لمطابقة عدة قيم دفعة واحدة. ويمكن أن يكون كل موضع قيمة حرفية أو نطاقًا أو محرفًا عامًا _.

let point = (1, 1)
switch point {
case (0, 0):
    print("Origin")
case (_, 0):
    print("On x-axis")
case (0, _):
    print("On y-axis")
default:
    print("Elsewhere")
}

المحارف العامة في tuple

يطابق الشرطة السفلية _ أي قيمة في ذلك الموضع، مما يتيح لك التركيز على الأجزاء التي تهمك.

let result = (200, "OK")
switch result {
case (200, _):
    print("Success")
case (_, "Error"):
    print("Has error")
default:
    print("Other")
}

النطاقات داخل tuple

يمكن لأنماط tuple استخدام نطاقات في كل موضع، مما يتيح مطابقة قوية ثنائية الأبعاد.

let coord = (3, 8)
switch coord {
case (0...5, 0...5):
    print("Bottom-left quadrant")
case (0...5, 6...10):
    print("Top-left quadrant")
default:
    print("Far")
}

مطابقة tuple محدد تمامًا

يمكنك مطابقة tuple محدد بالكامل لاكتشاف تركيبة بعينها.

let move = ("up", 2)
switch move {
case ("up", 2):
    print("Jump twice up")
case ("down", _):
    print("Going down")
default:
    print("Other move")
}

تصنيف الأرقام

تجعل مطابقة النطاقات تصنيف الرقم ضمن فئات أمرًا واضحًا ومباشرًا.

let n = -4
switch n {
case ..<0:
    print("negative")
case 0:
    print("zero")
case 1...:
    print("positive")
default:
    print("?")
}

نطاقات المحارف

بما أن المحارف قابلة للمقارنة، يمكنك حتى مطابقة نطاقات من المحارف.

let ch: Character = "k"
switch ch {
case "a"..."m":
    print("First half")
case "n"..."z":
    print("Second half")
default:
    print("Not a lowercase letter")
}

دمج مواضع tuple

تقيّم مطابقة tuple جميع المواضع معًا؛ ويجب أن يطابق كل موضع حتى تُنفَّذ الحالة.

let weather = (sunny: true, temp: 25)
switch (weather.sunny, weather.temp) {
case (true, 20...):
    print("Nice and warm")
case (true, _):
    print("Sunny but cool")
default:
    print("Not sunny")
}

لماذا يُعد هذا قويًا

تتيح أنماط النطاقات وtuple لـ switch التعبير عن منطق كان سيتطلب العديد من عبارات if المتداخلة، وذلك ضمن تخطيط مسطّح وسهل القراءة.

let (x, y) = (0, 5)
switch (x, y) {
case (0, 0): print("origin")
case (0, _): print("y-axis")
case (_, 0): print("x-axis")
default: print("plane")
}

تحقق سريع

اختبر مطابقة النطاقات وtuple.

خلاصة: مطابقة النطاقات وtuple

يمكن للحالات مطابقة نطاقات مثل 1...5 و0..<n، وتتيح أنماط tuple مطابقة عدة قيم دفعة واحدة باستخدام القيم الحرفية والنطاقات والمحرف العام _.

let p = (0, 4)
switch p {
case (0, _): print("y-axis")
default: print("other")
}

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

هل درس «مطابقة النطاقات والأزواج» مجاني؟

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

ماذا ستتعلم في «مطابقة النطاقات والأزواج»؟

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

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

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

كم من الوقت يستغرق درس «مطابقة النطاقات والأزواج»؟

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

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

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

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

  1. ‏Switch شامل للقيم
  2. مطابقة النطاقات والأزواج
  3. ربط القيم وعبارات where
  4. الحالات المركبة و Fallthrough
← العودة إلى Swift Academy