إنشاء النطاقات
ولّد متتاليات من الأعداد
إنشاء النطاقات درس مجاني في Scala for Backend Engineering & Functional Programming على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Scala for Backend Engineering & Functional Programming، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Scala for Backend Engineering & Functional Programming 4 دروس في المجموع.
ما هو النطاق؟
يمثل النطاق سلسلة مرتبة من أعداد صحيحة متباعدة بالتساوي، مثل 1 و2 و3 و4 و5.
تتميز النطاقات بكفاءة الذاكرة لأنها تخزن البداية والنهاية والخطوة فقط، لا كل عدد. وهي مثالية للعد والتكرار.
الكلمة المفتاحية to
يستخدم أبسط نطاق to، الذي يضم نقطتي النهاية.
لذلك يغطي 1 to 5 الأعداد 1 و2 و3 و4 و5. فالعدد الأخير جزء من النطاق.
val r = 1 to 5
println(r)النطاقات الشاملة
يُسمى النطاق الذي يستخدم to شاملًا لأنه يحتوي على الحد الأعلى.
ولرؤية الأعداد الفعلية بدلًا من الوصف المختصر، يمكنك تحويل النطاق إلى قائمة.
val r = 1 to 5
println(r.toList)الكلمة المفتاحية until
استخدم until عندما تريد التوقف قبل الحد الأعلى مباشرةً.
لذلك يعطيك 1 until 5 الأعداد 1 و2 و3 و4، ويستبعد 5. أي إنه يستبعد قيمة النهاية.
val r = 1 until 5
println(r.toList)to مقارنةً بـ until
يكمن الفرق في العدد الأخير فقط. إذ يضم to النهاية، بينما يستبعدها until.
يحتوي 1 to 5 على خمسة عناصر، بينما يحتوي 1 until 5 على أربعة. ويساعد اختيار الصيغة الصحيحة على تجنب أخطاء الفرق بمقدار واحد.
println((1 to 5).toList)
println((1 until 5).toList)تغيير الخطوة باستخدام by
تكون خطوة النطاق واحدًا افتراضيًا. أضف by لتغيير حجم الخطوة.
نعد هنا من 0 إلى 10 بقفزات مقدارها 2، فنحصل على الأعداد الزوجية.
val evens = 0 to 10 by 2
println(evens.toList)العد التنازلي
تتيح الخطوة السالبة للنطاق العد إلى الخلف.
باستخدام by -1، يبدأ النطاق من قيمة عالية وينخفض. وهذه هي الطريقة المعتادة للتكرار بالعكس.
val down = 5 to 1 by -1
println(down.toList)حجم النطاق
يمكنك سؤال النطاق عن عدد العناصر التي يحتوي عليها باستخدام size.
ويُحسب ذلك فورًا من الحدود والخطوة، دون سرد كل عدد.
val r = 0 to 20 by 5
println(r.size)التحقق من الانتماء
تخبرك method contains بما إذا كانت قيمة ما تقع داخل نطاق.
وهي تراعي الخطوة أيضًا، لذلك لا ينتمي 3 إلى نطاق بخطوة مقدارها 2 من الأعداد الزوجية.
val evens = 0 to 10 by 2
println(evens.contains(4))
println(evens.contains(3))النطاقات مجموعات
يتصرف النطاق مثل أي تسلسل آخر، لذلك يمكنك تطبيق map عليه أو جمع عناصره.
نربع هنا كل عدد ونجمع النتائج، وكل ذلك دون إنشاء قائمة صريحة أولًا.
val total = (1 to 4).map(n => n * n).sum
println(total)النطاقات الفارغة
إذا كانت البداية تتجاوز النهاية بالفعل، يكون النطاق فارغًا ببساطة.
فعلى سبيل المثال، لا يحتوي 5 until 5 على أي شيء. والنطاقات الفارغة صالحة ولا تنتج أي عناصر عند التكرار عليها.
val r = 5 until 5
println(r.isEmpty)اختبار سريع
اختبر ما تعلّمته عن إنشاء النطاقات.
مراجعة
تنشئ النطاقات باستخدام to الشامل وuntil الحصري، وتضبط الخطوة باستخدام by، وتعد تنازليًا باستخدام خطوة سالبة.
النطاقات مجموعات خفيفة تدعم size وcontains وmap. وستستخدمها بعد ذلك للتحكم في الحلقات.
تعلم Scala مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 39
- الدروس
- 143
الأسئلة الشائعة
هل درس «إنشاء النطاقات» مجاني؟
نعم — نص درس «إنشاء النطاقات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Scala for Backend Engineering & Functional Programming، انتقل إلى CoddyKit PRO. تتضمن دورة Scala for Backend Engineering & Functional Programming 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء النطاقات»؟
ولّد متتاليات من الأعداد تتمرن على Scala for Backend Engineering & Functional Programming مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Scala for Backend Engineering & Functional Programming؟
لا تُشترط خبرة سابقة. Scala for Backend Engineering & Functional Programming على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «إنشاء النطاقات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Scala for Backend Engineering & Functional Programming هذا؟
نعم. كل درس في Scala for Backend Engineering & Functional Programming يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء Tuples
- تفكيك Tuples
- إنشاء النطاقات
- النطاقات في الحلقات