État de la liste : isEmpty & isNotEmpty
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 2 sur 65.
Avant de travailler avec les éléments d'une liste, il est essentiel de savoir si votre liste contient réellement des éléments. Dart fournit deux propriétés simples pour vérifier l'état d'une liste : isEmpty et isNotEmpty.
La propriété isEmpty renvoie true si la liste ne contient aucun élément, et false si elle contient au moins un élément. La propriété isNotEmpty fonctionne de la manière opposée - elle renvoie true lorsque la liste contient des éléments et false lorsqu'elle est vide.
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // vrai
print(emptyCart.isNotEmpty); // faux
print(shoppingCart.isEmpty); // faux
print(shoppingCart.isNotEmpty); // vraiCes propriétés sont particulièrement utiles pour éviter les erreurs lors de la tentative d'accès aux éléments d'une liste. Vérifier si une liste est vide avant d'utiliser des propriétés comme .first ou .last vous aide à écrire un code plus sûr et plus fiable.
Défi
FacileCréez un programme qui gère un système de file d'attente de tâches en vérifiant si les listes de tâches sont vides ou contiennent des éléments. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le nom de la file d'attente (queue name)
- Lire plusieurs chaînes de caractères en entrée représentant les tâches (la saisie se terminera lorsque vous recevrez une chaîne vide)
- Utiliser la propriété
isEmptypour vérifier si la liste de tâches est vide - Utiliser la propriété
isNotEmptypour vérifier si la liste de tâches contient des tâches - Afficher l'état de la file d'attente dans le format exact indiqué ci-dessous
Par exemple, si le nom de la file d'attente est "Daily Tasks" et que les tâches sont "Review emails", "Attend meeting", "Write report", votre programme doit afficher :
Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processingSi le nom de la file d'attente est "Weekend Tasks" et qu'aucune tâche n'est fournie (entrée vide), votre programme doit afficher :
Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to processVotre programme doit utiliser les deux propriétés isEmpty et isNotEmpty pour déterminer l'état de la file d'attente. Le message d'état doit être "Ready for processing" lorsque des tâches existent et "No tasks to process" lorsque la file d'attente est vide.
Aide-mémoire
Utilisez les propriétés isEmpty et isNotEmpty pour vérifier si une liste contient des éléments :
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // true
print(emptyCart.isNotEmpty); // false
print(shoppingCart.isEmpty); // false
print(shoppingCart.isNotEmpty); // trueCes propriétés aident à prévenir les erreurs lors de l'accès aux éléments de la liste et rendent le code plus sûr et plus fiable.
Essayez vous-même
import 'dart:io';
void main() {
// Lire le nom de la file d'attente
String? queueName = stdin.readLineSync();
// Lire les tâches jusqu'à ce qu'une chaîne vide soit reçue
List<String> tasks = [];
String? task;
while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
tasks.add(task);
}
// TODO: Écrivez votre code ci-dessous
// Utilisez les propriétés tasks.isEmpty et tasks.isNotEmpty pour vérifier l'état de la file d'attente
// Déterminez le message d'état approprié selon que des tâches existent ou non
// Afficher les résultats
print('Queue: $queueName');
// Afficher s'il y a des tâches, si c'est vide, le nombre de tâches et l'état
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques