Доступ с проверкой на null
Часть раздела Основы путешествия по Dart на Coddy. Урок 29 из 94.
Оператор доступа с учётом null (?.) безопасно обращается к свойствам объектов, которые могут иметь значение null, предотвращая ошибки во время выполнения.
void main() {
String? name = 'Dart';
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}При значениях null возвращается null вместо аварийного завершения:
void main() {
String? name = null;
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Задание
ЛегкоСоздай программу на Dart, которая демонстрирует оператор доступа с проверкой на null (?.) на примере игрового персонажа:
- Создай nullable-переменную типа String с именем
playerNameи присвой ей значение null - Создай nullable-переменную типа int с именем
playerScoreи присвой ей значение 100 - Используй оператор доступа с проверкой на null (
?.), чтобы получить длину значения playerName, и сохрани её в переменной с именемnameLength - Выведи следующее сообщение:
Player name length: X(где X — значение nameLength) - Измени значение
playerNameна "Champion" - Снова используй оператор доступа с проверкой на null, чтобы получить обновлённую длину, и сохрани её в
nameLength - Выведи обновлённое сообщение:
Player name length: X(где X — новое значение) - Выведи счёт игрока в следующем формате:
Player score: 100
Попробуйте сами
void main() {
// Объявите здесь переменные, которые могут содержать null
String? playerName = _;
int? playerScore = _;
// Получите длину playerName с помощью оператора ?.
int? nameLength = playerName_.length;
// Выведите исходную длину имени
print("Player name length: ${nameLength}");
// Обновите playerName
playerName = _;
// Получите обновлённую длину с помощью оператора ?.
nameLength = playerName_.length;
// Выведите обновлённую длину имени
print("Player name length: ${nameLength}");
// Выведите счёт игрока
print("Player score: ${playerScore}");
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Операторы сравненияЛогическое ИЛогическое ИЛИЛогическое НЕОператоры проверки типаПовторение — сравнения7Работа со строками
Конкатенация строкИнтерполяция строкМногострочные строкиСвойства строкОсновные методы строк10Коллекции — основы Map
Что такое Map?Создание MapДоступ к значениям по ключуПары «ключ—значение»Получение размера MapПолучение ключейПолучение значенийПроверка наличия ключа13Подробно о безопасности при работе с null
Понимание nullТипы, допускающие nullТипы, не допускающие nullОператор утверждения о ненулевом значенииПоздняя инициализацияПовторение — безопасная обработка null2Переменные и базовые типы данных
Что такое переменные?СтрокиЦелые числа (int)Числа с плавающей точкой (double)Логические значения (bool)Вывод типа с помощью «var»Переменные finalКонстантные переменныеСоглашения об именованииОсновы безопасности при работе с nullПовторение — объявление переменных8Управление потоком — циклы
Цикл «for»Цикл «while»Цикл «do-while»Использование «break» в циклахИспользование «continue» в циклахПовторение — повторение кода3Операторы, часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияИнкремент и декрементСокращённая запись присваиванияПовторение — простые вычисления6Поток управления — принятие решений
Оператор «if»Оператор «else»Оператор «else if»Повторение — простые решенияВложенные операторы «if»Оператор «switch»9Коллекции — основы списков
Что такое списки?Создание спискаДоступ по индексуПолучение длины спискаДобавление элементовУдаление элементовПроверка, пуст ли списокПеребор списка12Продвинутые функции
Необязательные позиционные параметрыИменованные параметрыОбязательные именованные параметрыЗначения параметров по умолчаниюПовторение — параметры функций15Проект: простой калькулятор
НастройкаОбъявление числаПотренируйтесь самостоятельно: Онлайн-компилятор Dart