Доступ условной нулевости
Часть раздела Основы путешествия по Dart на Coddy — урок 29 из 94.
Оператор условного доступа (?.) безопасно обращается к свойствам потенциально 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-aware доступа (?.) с персонажем игры:
- Создайте nullable переменную типа String с именем
playerNameи установите значение null - Создайте nullable переменную типа int с именем
playerScoreи установите значение 100 - Используйте оператор null-aware доступа (
?.), чтобы получить длину playerName и сохранить её в переменной с именемnameLength - Выведите следующее сообщение:
Player name length: X(где X — значение nameLength) - Обновите
playerNameдо "Champion" - Снова используйте оператор null-aware доступа, чтобы получить обновлённую длину и сохранить её в
nameLength - Выведите обновлённое сообщение:
Player name length: X(где X — новое значение) - Выведите счёт игрока в этом формате:
Player score: 100
Шпаргалка
Оператор доступа с учётом null (?.) безопасно обращается к свойствам потенциально null-объектов, предотвращая ошибки времени выполнения.
Когда объект не равен null, он возвращает значение свойства:
String? name = 'Dart';
int? length = name?.length; // Возвращает 4Когда объект равен null, он возвращает null вместо сбоя:
String? name = null;
int? length = name?.length; // Возвращает nullПопробуйте сами
void main() {
// Объявите здесь ваши nullable переменные
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
Операторы сравненияЛогический ANDЛогический ORЛогический NOTОператоры проверки типаПовторение - Сравнения7Работа со строками
Конкатенация строкИнтерполяция строкМногострочные строкиСвойства строкОсновные методы строк10Коллекции - Основы словарей
Что такое словари?Создание словаряДоступ к значениям по ключуПары ключ-значениеПолучение размера словаряПолучение ключейПолучение значенийПроверка существования ключа2Переменные и основные типы данных
Что такое переменные?СтрокиЦелые числа (int)Вещественные числа (double)Булевы значения (bool)Вывод типов с 'var'Финальные переменныеКонстантные переменныеСоглашения об именованииОсновы null-безопасностиПовторение - Объявление переменных8Поток управления - Циклы
Цикл 'for'Цикл 'while'Цикл 'do-while'Использование 'break' в циклахИспользование 'continue' в циклахИтог - Повторение кода3Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор модуляИнкремент и декрементСокращённые присваиванияИтог - Простые вычисления6Управление потоком - Принятие решений
Оператор 'if'Оператор 'else'Оператор 'else if'Повторение - Простые решенияВложенные операторы 'if'Оператор 'switch'9Коллекции - Основы списков
Что такое списки?Создание спискаДоступ по индексуПолучение длины спискаДобавление элементовУдаление элементовПроверка, пуст ли списокИтерация по списку12Расширенные функции
Необязательные позиционные параметрыИменованные параметрыОбязательные именованные параметрыЗначения параметров по умолчаниюПовторение - Параметры функций15Проект: Простой калькулятор
НастройкаОбъявление числа