0Pricing
Swift Academy · درس

هرميات Sequence/Collection

افهم الفرق بين Sequence و Collection ، وكذلك Bidirectional وRandomAccess: وضمانات الاجتياز والفهارس ومتى تتطلب الخوارزميات Protocols أقوى.

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

خريطة التسلسل الهرمي

هرم التسلسلات:

  • Sequence: التكرار عبر مكرّر (وقد يكون المرور مرة واحدة فقط).
  • Collection: مرور متعدد وإمكانية الفهرسة (startIndex/endIndex).
  • BidirectionalCollection: إمكانية تحريك الفهارس إلى الخلف.
  • RandomAccessCollection: خطوات فهرسة بزمن ثابت.

التكرار في Sequence

يضمن Sequence إمكانية تكرار العناصر بالترتيب؛ ولا يُشترط فيه أي شيء يتعلق بالفهرسة أو بالمرور المتعدد.

let seq = [1, 2, 3] as AnySequence<Int>    // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")

فهارس Collection

يضيف Collection الفهارس، ويسمح بالمرور المتعدد. ويمكنك إعادة التكرار بأمان.

let arr = ["a","b","c"]          // Array is a Collection
print(arr.startIndex == 0)            // true for Array
print(arr.endIndex == 3)              // endIndex is "one past last"
for i in arr.indices { print(arr[i], terminator: " ") }
print("")
// Iterate again (multi-pass)
for ch in arr { print(ch, terminator: " ") }
print("")

إمكانات أقوى

يستطيع BidirectionalCollection تحريك الفهارس إلى الخلف. ويدعم RandomAccessCollection خطوات الفهرسة بزمن ثابت (مثل Array).

let text = "Swift"                         // String is a BidirectionalCollection
var i = text.index(before: text.endIndex)       // move backward
print(text[i])                                   // last character
// Array is RandomAccessCollection: jumping indices is cheap
let nums = [10,20,30,40]
print(nums[nums.startIndex.advanced(by: 2)])     // 30

Sequence مخصص

قد يكون Sequence مخصص للمرور مرة واحدة فقط. وبعد التكرار مرة واحدة، قد ينفد المكرّر.

struct Countdown: Sequence, IteratorProtocol {
    var current: Int
    mutating func next() -> Int? {
        guard current >= 0 else { return nil }
        defer { current -= 1 }
        return current
    }
}
var cd = Countdown(current: 3)
for n in cd { print(n, terminator: " ") }   // 3 2 1 0
print("")
// cd is exhausted; iterating again yields nothing (single-pass behavior)

اختر البروتوكول المناسب

إرشادات:

  • استخدم الخوارزميات العامة مع Sequence عندما تكفي مرة واحدة من المرور.
  • اشترط Collection عند الحاجة إلى المرور المتعدد أو عمليات الفهرسة.
  • فضّل RandomAccessCollection للخوارزميات التي تقفز بين الفهارس كثيراً (مثل البحث الثنائي).

Collection مقابل Sequence

تحقق سريع: ماذا يضيف Collection إلى Sequence؟

مراجعة

مراجعة: Sequence ← تكرار أساسي. Collection ← فهارس + مرور متعدد. Bidirectional ← التحرك إلى الخلف. RandomAccess ← خطوات فهرسة بزمن ثابت. اختر أصغر بروتوكول يلائم خوارزميتك.

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

هل درس «هرميات Sequence/Collection» مجاني؟

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

ماذا ستتعلم في «هرميات Sequence/Collection»؟

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

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

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

كم من الوقت يستغرق درس «هرميات Sequence/Collection»؟

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

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

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

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

  1. هرميات Sequence/Collection
  2. ‏Map/Filter/Reduce والتسلسلات الكسولة
  3. المكرّرات المخصّصة ونصائح الأداء
← العودة إلى Swift Academy