Swift Academy · درس

التسلسلات الكسولة للكفاءة

استخدموا .lazy لتأجيل الحساب وتجنّب إنشاء مصفوفات وسيطة.

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

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

مرحبًا

تؤجل المتتاليات الكسولة الحساب إلى أن تصبح النتائج مطلوبة، ما يتجنب إنشاء مصفوفات وسيطة عند ربط العمليات.

مشكلة التقييم الفوري

```swift let result = (1...1_000_000) .filter { $0 % 7 == 0 } // creates array of ~142857 elements .map { $0 * 2 } // creates another 142857-element array .prefix(5) // Wasteful — only 5 elements needed! ```

إضافة `.lazy`

```swift let result = (1...1_000_000) .lazy .filter { $0 % 7 == 0 } .map { $0 * 2 } .prefix(5) // Only computes what prefix(5) needs — no intermediate arrays! print(Array(result)) // [14,28,42,56,70] ```

أنواع المجموعات الكسولة

عند استدعاء `.lazy` على متتالية، تعيد Swift كائن `LazySequence` يغلّفها: ```swift let lazyArr = [1,2,3].lazy // LazySequence<[Int]> let lazyMap = lazyArr.map { $0*2 } // LazyMapSequence ```

متى يكون التنفيذ الكسول أفضل

يكون التنفيذ الكسول أفضل عندما: • تحتاج فقط إلى بادئة من متتالية كبيرة • يكون المصدر لا نهائيًا، مثل المولدات المخصصة • تربط عدة تحويلات على مجموعات كبيرة

المتتاليات اللانهائية

```swift struct Fibonacci: Sequence { func makeIterator() -> some IteratorProtocol { var a = 0, b = 1 return AnyIterator { let next = a; a = b; b = next + b; return next } } } let first10 = Array(Fibonacci().prefix(10)) ```

التنفيذ الكسول مع `first(where:)`

```swift let firstEven = (1...Int.max) .lazy .first { $0 % 2 == 0 } // Returns 2 immediately — doesn't iterate the whole range ```

فرض التقييم

لتحويل متتالية كسولة إلى مجموعة فعلية، لفّها داخل `Array`: ```swift let eager = Array((1...100).lazy.filter { $0 % 3 == 0 }.map { $0*2 }) ```

التنفيذ الكسول ليس الأفضل دائمًا

بالنسبة إلى المجموعات الصغيرة، يضيف التنفيذ الكسول تكلفة بسبب أنواع التغليف. أجرِ اختبارًا للأداء قبل تطبيق `.lazy` على كل سلسلة. استخدمه عندما تكون المجموعة كبيرة وتحتاج إلى الإنهاء المبكر.

مولد كسول مخصص

```swift func naturals() -> AnyIterator { var n = 0 return AnyIterator { n += 1; return n } } Array(naturals().prefix(5)) // [1,2,3,4,5] ```

تحقق سريع

ما الذي تحققه بادئة `.lazy` في سلسلة عمليات على مجموعة؟

مراجعة

أهم النقاط: • تؤجل `.lazy` حسابات `map` و`filter` حتى استهلاك النتائج • تتجنب تخصيص مصفوفات وسيطة • مفيدة للمتتاليات الكبيرة عندما تحتاج فقط إلى بادئة منها • ادمجها مع `prefix` و`first(where:)` لتحقيق الإنهاء المبكر • حوّلها إلى مجموعة فعلية باستخدام `Array(lazySeq)` عند الحاجة اكتملت الدورة التدريبية!
البدء مجانًا

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

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

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

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

هل درس «التسلسلات الكسولة للكفاءة» مجاني؟

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

ماذا ستتعلم في «التسلسلات الكسولة للكفاءة»؟

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

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

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

كم من الوقت يستغرق درس «التسلسلات الكسولة للكفاءة»؟

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

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

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

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

  1. الدوال النقية والتصميم الخالي من الآثار الجانبية
  2. الدوال عالية الرتبة: ‏map وflatMap وcompactMap
  3. تركيب الدوال وخطوط المعالجة
  4. التسلسلات الكسولة للكفاءة
← العودة إلى Swift Academy