إنشاء المقاطع باستخدام النطاقات
استخرج تسلسلات فرعية دون نسخها.
إنشاء المقاطع باستخدام النطاقات درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
الوصول باستخدام نطاق
عند استخدام نطاق لفهرسة مصفوفة، لا تنسخ Swift العناصر إلى مصفوفة جديدة. بل تعيد ArraySlice تشارك التخزين مع المصفوفة الأصلية.
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)
print(type(of: slice))النطاق نصف المفتوح
ينشئ العامل ..< نطاقًا نصف مفتوح. يتضمن 1..<4 الفهارس 1 و2 و3، لكنه لا يتضمن الفهرس 4.
let letters = ["a", "b", "c", "d", "e"]
let middle = letters[1..<4]
print(middle)التقطيع باستخدام نطاق مغلق
استخدم ... لنطاق مغلق عندما تريد تضمين الحد العلوي. يغطي 1...3 الفهارس 1 و2 و3.
let scores = [88, 92, 75, 64, 99]
let closed = scores[1...3]
print(closed)النطاقات أحادية الطرف
تدعم Swift النطاقات أحادية الطرف. يعني arr[2...] من الفهرس 2 حتى النهاية، بينما يعني arr[..<2] كل ما يسبق الفهرس 2.
let data = [1, 2, 3, 4, 5, 6]
print(data[3...])
print(data[..<3])الشرائح طرق عرض
إن ArraySlice هو طريقة عرض داخل المصفوفة الأصلية. وإنشاؤه قليل التكلفة لأن العناصر لا تُنسخ حتى تعدّله أو تحوّله.
let big = Array(1...1000)
let window = big[100..<105]
print(window)التكرار على شريحة
يمكنك التكرار على شريحة كما تفعل مع المصفوفة. وتكون القيم هي العناصر نفسها الموجودة في المصفوفة الأصلية.
let words = ["sun", "moon", "star", "comet"]
let pair = words[1..<3]
for w in pair {
print(w)
}شريحة من السلاسل النصية
يعمل التقطيع مع أي نوع من العناصر. نأخذ هنا نطاقًا من مصفوفة من الأسماء.
let names = ["Ada", "Bob", "Cleo", "Dan", "Eve"]
let some = names[0..<2]
print(some)الدمج مع count
يمكنك إنشاء نطاق ديناميكيًا باستخدام count الخاص بالمصفوفة للحصول على العناصر القليلة الأخيرة.
let nums = [5, 10, 15, 20, 25]
let lastTwo = nums[(nums.count - 2)..<nums.count]
print(lastTwo)الشريحة الفارغة
ينتج النطاق الذي يتساوى حداه السفلي والعلوي شريحة فارغة. وهذا صالح وآمن.
let arr = [1, 2, 3, 4]
let empty = arr[2..<2]
print(empty)
print(empty.isEmpty)تقطيع وجمع
بما أن الشريحة تلتزم بالبروتوكولات نفسها، يمكنك استدعاء أساليب مثل reduce عليها مباشرة.
let values = [2, 4, 6, 8, 10]
let sum = values[1..<4].reduce(0, +)
print(sum)أهمية الشرائح
تتيح لك الشرائح العمل مع أجزاء فرعية من المصفوفات الكبيرة دون تحمل تكلفة النسخ. وهذا مفيد جدًا لخوارزميات مثل البحث الثنائي أو النوافذ المنزلقة.
let series = Array(1...20)
let firstHalf = series[..<10]
let secondHalf = series[10...]
print(firstHalf.count, secondHalf.count)تحقق سريع
اختبر فهمك لتقطيع النطاقات.
مراجعة
تعلمت أن استخدام نطاق لفهرسة مصفوفة يعيد ArraySlice يشارك التخزين مع المصفوفة الأصلية. يستبعد ..< الحد العلوي، بينما يتضمنه ...، وتستخرج النطاقات أحادية الطرف بادئة أو لاحقة بتكلفة منخفضة.
let r = [10, 20, 30, 40]
print(r[1..<3])
print(r[1...])
print(r[..<2])الأسئلة الشائعة
هل درس «إنشاء المقاطع باستخدام النطاقات» مجاني؟
نعم — نص درس «إنشاء المقاطع باستخدام النطاقات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء المقاطع باستخدام النطاقات»؟
استخرج تسلسلات فرعية دون نسخها. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إنشاء المقاطع باستخدام النطاقات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء المقاطع باستخدام النطاقات
- دلالات فهارس ArraySlice
- تحويل المقاطع مجددًا إلى مصفوفات
- prefix و suffix و dropFirst