Состояние списка: isEmpty и isNotEmpty
Часть раздела Логика и управление потоком путешествия по 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); // true
print(emptyCart.isNotEmpty); // false
print(shoppingCart.isEmpty); // false
print(shoppingCart.isNotEmpty); // trueЭти свойства особенно полезны для предотвращения ошибок при попытке доступа к элементам списка. Проверка того, пуст ли список, перед использованием таких свойств, как .first или .last, помогает писать более безопасный и надежный код.
Задание
ЛегкоСоздайте программу, которая управляет системой очередей задач, проверяя, пуст ли список задач или содержит элементы. Ваша программа должна:
- Считать строковый ввод, представляющий название очереди
- Считать несколько строковых вводов, представляющих задачи (ввод закончится при получении пустой строки)
- Использовать свойство
isEmpty, чтобы проверить, пуст ли список задач - Использовать свойство
isNotEmpty, чтобы проверить, содержит ли список задач элементы - Вывести статус очереди в точном формате, показанном ниже
Например, если название очереди — "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');
// Вывести наличие задач, пуста ли очередь, количество задач и статус
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей