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

حالة القائمة: isEmpty و isNotEmpty

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

قبل التعامل مع عناصر القائمة، من الضروري معرفة ما إذا كانت قائمتك تحتوي بالفعل على أي عناصر. توفر Dart خاصيتين بسيطتين للتحقق من حالة القائمة: isEmpty و isNotEmpty.

تعيد الخاصية isEmpty القيمة true إذا كانت القائمة لا تحتوي على عناصر، والقيمة false إذا كانت تحتوي على عنصر واحد على الأقل. تعمل الخاصية isNotEmpty بطريقة عكسية - فهي تعيد true عندما تحتوي القائمة على عناصر و false عندما تكون فارغة.

List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];

print(emptyCart.isEmpty);      // صحيح
print(emptyCart.isNotEmpty);   // خطأ

print(shoppingCart.isEmpty);   // خطأ
print(shoppingCart.isNotEmpty); // صحيح

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

challenge icon

التحدي

سهل

قم بإنشاء برنامج يدير نظام زمام المهام (task queue) من خلال التحقق مما إذا كانت قوائم المهام فارغة أو تحتوي على عناصر. يجب على برنامجك القيام بما يلي:

  1. قراءة مدخل نصي (string) يمثل اسم الزمام (queue name)
  2. قراءة مدخلات نصية متعددة تمثل المهام (ينتهي الإدخال عندما تتلقى سلسلة فارغة)
  3. استخدام خاصية isEmpty للتحقق مما إذا كانت قائمة المهام فارغة
  4. استخدام خاصية isNotEmpty للتحقق مما إذا كانت قائمة المهام تحتوي على مهام
  5. طباعة حالة الزمام بالتنسيق الدقيق الموضح أدناه

على سبيل المثال، إذا كان اسم الزمام هو "Daily Tasks" والمهام هي "Review emails"، و "Attend meeting"، و "Write report"، فيجب أن يخرج برنامجك ما يلي:

Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processing

إذا كان اسم الزمام هو "Weekend Tasks" ولم يتم توفير أي مهام (إدخال فارغ)، فيجب أن يخرج برنامجك ما يلي:

Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to process

يجب أن يستخدم برنامجك كلاً من خاصيتي isEmpty و isNotEmpty لتحديد حالة الزمام. يجب أن تكون رسالة الحالة "Ready for processing" عند وجود مهام، و "No tasks to process" عندما يكون الزمام فارغاً.

ورقة مرجعية

استخدم الخاصيتين isEmpty و isNotEmpty للتحقق مما إذا كانت القائمة تحتوي على عناصر:

List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];

print(emptyCart.isEmpty);      // true
print(emptyCart.isNotEmpty);   // false

print(shoppingCart.isEmpty);   // false
print(shoppingCart.isNotEmpty); // true

تساعد هذه الخصائص في منع الأخطاء عند الوصول إلى عناصر القائمة وتجعل الكود أكثر أماناً وموثوقية.

جرّب بنفسك

import 'dart:io';

void main() {
  // قراءة اسم الطابور
  String? queueName = stdin.readLineSync();
  
  // قراءة المهام حتى يتم استلام سلسلة نصية فارغة
  List<String> tasks = [];
  String? task;
  while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
    tasks.add(task);
  }
  
  // TODO: اكتب الكود الخاص بك أدناه
  // استخدم خصائص tasks.isEmpty و tasks.isNotEmpty للتحقق من حالة الطابور
  // حدد رسالة الحالة المناسبة بناءً على ما إذا كانت المهام موجودة أم لا
  
  // طباعة النتائج
  print('Queue: $queueName');
  // طباعة ما إذا كان يحتوي على مهام، أو فارغ، وعدد المهام، والحالة
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow