Menu
Coddy logo textTech

Основы null-безопасности

Часть раздела Основы путешествия по Dart на Coddy — урок 14 из 94.

Null safety помогает предотвратить неожиданные сбои приложения, контролируя, какие переменные могут быть пустыми (null).

По умолчанию переменные должны содержать значение:

void main() {
  String name = 'Dart';
  print(name);  // Outputs: Dart
  
  // This would cause problems:
  // name = null;  // Not allowed
}

Добавьте ? после типа, чтобы разрешить null-значения:

void main() {
  String? name = 'Dart';
  print(name);  // Выводит: Dart
  
  // Теперь мы можем присвоить null
  name = null;
  print(name);  // Выводит: null
}

Вы можете объявлять nullable-переменные любого типа:

void main() {
  int? age;  // No initial value, defaults to null
  double? price = 19.99;
  bool? isAvailable = true;
  
  print(age);         // Outputs: null
  print(price);       // Outputs: 19.99
  print(isAvailable); // Outputs: true
  
  // We can change any of these to 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. Выведите обе переменные снова с ТОЧНО таким же форматом, как раньше

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

Шпаргалка

По умолчанию переменные Dart не могут быть null. Добавьте ? после типа, чтобы разрешить значения null:

// Недопускающий null (по умолчанию)
String name = 'Dart';

// Допускающий null с ?
String? name = 'Dart';
name = null;  // Теперь разрешено

Вы можете объявлять переменные, допускающие null, любого типа:

int? age;           // По умолчанию null
double? price = 19.99;
bool? isAvailable = true;

// Все могут быть установлены в null
price = null;
isAvailable = null;

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

void main() {
  // Объявите здесь ваши nullable переменные
  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Проверьте себя

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

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