Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

خصائص القائمة: first و last

جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 1 من 65.

عند العمل مع القوائم، غالباً ما تحتاج إلى الوصول إلى العنصر الأول أو الأخير. بدلاً من استخدام أرقام الفهارس مثل [0] أو [list.length - 1]، توفر Dart خاصيتين مريحتين تجعلان هذا الأمر أبسط بكثير.

تمنحك الخاصية .first العنصر الأول في القائمة، بينما تمنحك الخاصية .last العنصر الأخير. تعد هذه الخصائص أكثر قابلية للقراءة وأقل عرضة للخطأ من حساب مواقع الفهرس.

List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];

String firstPlanet = planets.first;   // 'Mercury'
String lastPlanet = planets.last;     // 'Mars'

تعمل هذه الخصائص مع أي قائمة غير فارغة وتتعامل تلقائياً مع حسابات الفهرس (index calculations) نيابةً عنك. وهذا يجعل الكود الخاص بك أكثر نظافة وأسهل في الفهم عندما تحتاج إلى التعامل مع العناصر الموجودة في بداية أو نهاية قوائمك.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يقوم بتحليل قائمة تشغيل موسيقى من خلال الوصول إلى الأغنية الأولى والأخيرة. يجب على برنامجك القيام بما يلي:

  1. قراءة مدخل نصي (string) يمثل اسم قائمة التشغيل (playlist name)
  2. قراءة مدخلات نصية متعددة تمثل عناوين الأغاني (سينتهي الإدخال عندما تتلقى سلسلة فارغة)
  3. استخدام خاصية .first للحصول على الأغنية الأولى في قائمة التشغيل
  4. استخدام خاصية .last للحصول على الأغنية الأخيرة في قائمة التشغيل
  5. طباعة تحليل قائمة التشغيل بالتنسيق الدقيق الموضح أدناه

على سبيل المثال، إذا كان اسم قائمة التشغيل هو "My Favorites" وكانت الأغاني هي "Bohemian Rhapsody"، و "Imagine"، و "Hotel California"، فيجب أن يخرج برنامجك ما يلي:

Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel California

يجب أن يتعامل برنامجك مع قوائم التشغيل التي تحتوي على أي عدد من الأغاني ويستخدم الخاصيتين .first و .last للوصول إلى مسارات الافتتاح والختام.

ورقة مرجعية

استخدم الخاصيتين .first و .last للوصول إلى العنصرين الأول والأخير في القائمة:

List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];

String firstPlanet = planets.first;   // 'Mercury'
String lastPlanet = planets.last;     // 'Mars'

تعد هذه الخصائص أكثر قابلية للقراءة من استخدام أرقام الفهارس مثل [0] أو [list.length - 1] وتعمل مع أي قائمة غير فارغة.

جرّب بنفسك

import 'dart:io';

void main() {
  // قراءة اسم قائمة التشغيل
  String? playlistName = stdin.readLineSync();
  
  // قراءة الأغاني حتى يتم إدخال نص فارغ
  List<String> songs = [];
  String? song;
  while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
    songs.add(song);
  }
  
  // TODO: اكتب الكود الخاص بك أدناه
  // استخدم songs.first و songs.last للحصول على المسارات الافتتاحية والختامية
  
  // إخراج تحليل قائمة التشغيل
  print("Playlist: $playlistName");
  print("Total songs: ${songs.length}");
  // اطبع المسارات الافتتاحية والختامية هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow