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. Выведите обе переменные снова с ТОЧНО таким же форматом, как раньше

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

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

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Проверьте себя

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

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

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