Основы безопасности при работе с null
Часть раздела Основы путешествия по Dart на Coddy. Урок 14 из 94.
Безопасность при работе с null помогает предотвратить неожиданные сбои приложения, контролируя, какие переменные могут быть пустыми (null).
По умолчанию переменные должны содержать значение:
void main() {
String name = 'Dart';
print(name); // Выводит: Dart
// Это вызвало бы проблемы:
// name = null; // Не допускается
}Добавь ? после типа, чтобы разрешить значения null:
void main() {
String? name = 'Dart';
print(name); // Выводит: Dart
// Теперь можно присвоить null
name = null;
print(name); // Выводит: null
}Можно объявлять переменные с возможным значением null любого типа:
void main() {
int? age; // Начальное значение не задано, по умолчанию — null
double? price = 19.99;
bool? isAvailable = true;
print(age); // Выводит: null
print(price); // Выводит: 19.99
print(isAvailable); // Выводит: true
// Любому из них можно присвоить null
price = null;
isAvailable = null;
}
Безопасность при работе с null помогает защитить приложение от неожиданных сбоев, которые возникают, когда код пытается использовать значения null в операциях.
Задание
НовичокСоздай программу на Dart, демонстрирующую основы безопасности при работе с null с помощью оператора ?:
- Объяви переменную типа String с именем
usernameи присвой ей значениеnull, используя оператор безопасности при работе с null?(String?) - Объяви переменную типа int с именем
userAgeи присвой ей значениеnull, используя оператор безопасности при работе с null - Выведи обе переменные с метками в ТОЧНО следующем формате:
Username: null
User age: nullЗатем:
- Присвой значение
"DartLearner"переменнойusername - Присвой значение
25переменнойuserAge - Снова выведи обе переменные в ТОЧНО таком же формате, как и прежде
Твой вывод должен точно соответствовать формату, показанному выше.
Попробуйте сами
void main() {
// Объявите здесь переменные, которые могут принимать значение null
String? username = ?;
int? userAge = ?;
// Выведите начальные значения с подписями
print("Username: " + username.toString());
print("User age: " + userAge.toString());
// Присвойте переменным новые значения
username = ?;
userAge = ?;
// Выведите обновлённые значения с теми же подписями
print("Username: " + username.toString());
print("User age: " + userAge.toString());
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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