0Pricing
Swift Academy · درس

النطاقات أحادية الجانب

عبّر عن النطاقات المفتوحة النهاية لإنشاء المقاطع.

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

ما النطاقات أحادية الطرف

النطاق أحادي الطرف هو نطاق يحذف أحد حدّيه. ويُستخدم غالبًا لتقطيع مجموعة بدءًا من موضع ما أو وصولًا إليه.

let letters = ["a", "b", "c", "d", "e"]
let tail = letters[2...]
print(Array(tail))

بدءًا من فهرس وما يليه

يعني arr[2...] «من الفهرس 2 حتى النهاية». ويكون فهرس البداية مشمولًا.

let nums = [10, 20, 30, 40]
print(Array(nums[1...]))

حتى فهرس معيّن

يعني arr[..<3] «من البداية حتى الفهرس 3، دون تضمينه».

let nums = [10, 20, 30, 40]
print(Array(nums[..<3]))

مرورًا بفهرس معيّن

يعني arr[...2] «من البداية مرورًا بالفهرس 2»، مع تضمين الفهرس 2.

let nums = [10, 20, 30, 40]
print(Array(nums[...2]))

تشارك الشرائح الفهارس

تحتفظ الشريحة بالفهارس الأصلية. يظل العنصر الأول في arr[2...] عند الفهرس 2، وليس 0.

let nums = [10, 20, 30, 40]
let slice = nums[2...]
print(slice.startIndex)
print(slice[2])

تحويل شريحة

لإعادة الفهرسة بدءًا من 0 أو للحصول على مصفوفة مستقلة، غلّف الشريحة داخل Array(...).

let nums = [10, 20, 30, 40]
let rest = Array(nums[1...])
print(rest[0])

النطاقات أحادية الطرف في مطابقة الأنماط

تعمل النطاقات أحادية الطرف أيضًا كأنماط في switch: تطابق case 18... القيمة 18 وما فوقها.

let age = 70
switch age {
case ..<18:
    print("Minor")
case 18...:
    print("Adult")
default:
    print("?")
}

نمط أحادي الطرف من الأسفل

يطابق case ..<0 كل ما هو أقل من الصفر، وهو مفيد لالتقاط القيم السالبة.

let value = -3
switch value {
case ..<0:
    print("negative")
case 0:
    print("zero")
default:
    print("positive")
}

بادئة سلسلة نصية

يمكن للنطاقات أحادية الطرف تقطيع السلاسل النصية أيضًا عند استخدامها مع فهارس السلاسل. نزيل هنا الحرف الأول باستخدام شريحة.

let word = "Swift"
let chars = Array(word)
let rest = chars[1...]
print(String(rest))

دمج الشرائح

يمكنك أخذ بداية ونهاية مصفوفة باستخدام شريحتين أحاديتي الطرف.

let data = [1, 2, 3, 4, 5, 6]
let head = Array(data[..<2])
let tail = Array(data[4...])
print(head)
print(tail)

التقطيع الآمن

يؤدي التقطيع بعد الحدود إلى تعطل البرنامج، لذا تحقّق من الفهرس أولًا عندما يأتي من الإدخال.

let nums = [1, 2, 3]
let start = 1
if start < nums.count {
    print(Array(nums[start...]))
}

تحقق سريع

اختبر النطاقات أحادية الطرف.

مراجعة: النطاقات أحادية الطرف

تقطع النطاقات أحادية الطرف مثل arr[2...] وarr[..<3] وarr[...2] المصفوفة بدءًا من موضع أو وصولًا إليه. تحتفظ الشرائح بالفهرسة الأصلية، لذا استخدم Array(...) لإعادة الفهرسة. وتعمل هذه النطاقات أيضًا كأنماط في switch.

let a = [1, 2, 3, 4]
print(Array(a[2...]))

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

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

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

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

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

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

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

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

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

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

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

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

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