سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence
أنشئ مسارات معالجة متعددة الخطوات واستخدم Sequence للتقييم الكسول.
سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
المشكلة: القوائم الوسيطة
التقييم الفوري مقارنةً بالتقييم الكسول
التحويل إلى Sequence
val result = (1..1_000_000)
.asSequence()
.filter { it % 2 == 0 }
.map { it * it }
.take(5)
.toList()
println(result) // [4, 16, 36, 64, 100]Sequence كسول: لا عمل قبل العملية النهائية
val seq = generateSequence(1) { it + 1 } // infinite!
.filter { it % 3 == 0 }
.map { it * it }
val first5 = seq.take(5).toList()
println(first5) // [9, 36, 81, 144, 225]generateSequence: تسلسلات لا نهائية
val fibonacci = generateSequence(Pair(0, 1)) { (a, b) -> Pair(b, a + b) }
.map { it.first }
val first10 = fibonacci.take(10).toList()
println(first10) // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]منشئ sequence
val evens = sequence {
var n = 0
while (true) {
yield(n)
n += 2
}
}
println(evens.take(5).toList()) // [0, 2, 4, 6, 8]متى تستخدم Sequence
متى لا تستخدم Sequence
// Overkill for small list:
listOf(1, 2, 3).asSequence().map { it * 2 }.toList()
// Just use:
listOf(1, 2, 3).map { it * 2 }العمليات النهائية في Sequence
val s = (1..100).asSequence().filter { it % 7 == 0 }
println(s.first()) // 7
println(s.count()) // 14
println(s.sum()) // 728العمليات ذات الحالة وغير ذات الحالة
val s = (1..10).asSequence()
.filter { it > 3 } // stateless: lazy
.sorted() // stateful: must see all elements
.take(3).toList()
println(s) // [4, 5, 6]constrainOnce: أمان التكرار لمرة واحدة
val seq = generateSequence(1) { if (it < 5) it + 1 else null }
.constrainOnce()
val first = seq.toList() // OK
// val second = seq.toList() // IllegalStateException!تحقق سريع
مراجعة
تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 51
- الدروس
- 203
الأسئلة الشائعة
هل درس «سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence» مجاني؟
نعم — نص درس «سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ماذا ستتعلم في «سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence»؟
أنشئ مسارات معالجة متعددة الخطوات واستخدم Sequence للتقييم الكسول. تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟
لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟
نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- map وflatMap: تحويل كل عنصر
- filter وfilterNot وpartition
- fold وreduce وrunningFold
- سلسلة مسارات المعالجة وتجنّب القوائم الوسيطة باستخدام Sequence