Menu
CoddyTech

Основы безопасности при работе с 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 в операциях.

challenge icon

Задание

Новичок

Создай программу на Dart, демонстрирующую основы безопасности при работе с null с помощью оператора ?:

  1. Объяви переменную типа String с именем username и присвой ей значение null, используя оператор безопасности при работе с null ? (String?)
  2. Объяви переменную типа int с именем userAge и присвой ей значение null, используя оператор безопасности при работе с null
  3. Выведи обе переменные с метками в ТОЧНО следующем формате:
Username: null
User age: null

Затем:

  1. Присвой значение "DartLearner" переменной username
  2. Присвой значение 25 переменной userAge
  3. Снова выведи обе переменные в ТОЧНО таком же формате, как и прежде

Твой вывод должен точно соответствовать формату, показанному выше.

Попробуйте сами

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());
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Dart