0Pricing
Dart Academy · Урок

Значения по умолчанию и required

Создание необязательных или обязательных параметров

«Значения по умолчанию и required» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Разумные значения по умолчанию

Значение по умолчанию — это запасное значение, которое Dart использует, когда вызывающий код пропускает параметр. Оно избавляет от необходимости каждый раз передавать очевидный вариант.

Значение по умолчанию для именованных параметров

Задайте именованному параметру значение по умолчанию с помощью знака равенства. Если вызывающий код его пропустит, Dart спокойно использует это значение вместо null.

void greet({String name = "friend"}) {
  print("Hi $name");
}

Вызов со значением по умолчанию

Пропустите параметр — и сработает значение по умолчанию. Передайте значение — и оно заменит запасной вариант только в этом вызове.

greet();            // Hi friend
greet(name: "Ada"); // Hi Ada

Значения по умолчанию для необязательных позиционных параметров

Необязательные позиционные параметры в квадратных скобках тоже могут иметь значение по умолчанию, поэтому они никогда незаметно не превращаются в null.

int pow(int base, [int exp = 2]) {
  return base * exp;
}

Значения по умолчанию должны быть константами

Значение по умолчанию должно быть константой времени компиляции. Подходят литералы и значения const, но обычная переменная или вызов функции не подойдут.

void f({int n = 10}) {} // ok
// void g({int n = x}) {} // error

Ключевое слово required

Пометьте именованный параметр словом required, чтобы обязать вызывающий код его предоставить. Если его забыть, это станет ошибкой компиляции, а не неожиданностью во время выполнения.

void send({required String to}) {}

Зачем нужно required

Именованные параметры по умолчанию необязательны, поэтому значение ключа может отсутствовать. required гарантирует, что вызывающий код всегда его передаст. 🔒

required с типами, допускающими null

Именованный параметр, не допускающий null, должен быть либо required, либо иметь значение по умолчанию. Иначе Dart не сможет гарантировать наличие значения.

void box({required int w, int h = 10}) {}

Сочетание required и значений по умолчанию

Одна функция может сочетать оба варианта: одни параметры сделать required, а для других задать разумные значения по умолчанию. Это обеспечивает вызывающему коду понятный и гибкий интерфейс.

void user({required String id, bool active = true}) {}

Допускающий null параметр без значения по умолчанию

Если именованный параметр допускает null, для него можно просто оставить значение null по умолчанию. Ни required, ни явное значение по умолчанию не нужны.

void note({String? text}) {} // text may be null

Более чистые места вызова

Хорошие значения по умолчанию сокращают места вызова. Вызывающий код передаёт только необычные параметры, а значение по умолчанию удобно обрабатывает обычный случай. ✨

Быстрая проверка

Убедимся, что Вы понимаете required и значения по умолчанию.

Повторение

Теперь Вы умеете задавать значения по умолчанию для необязательных параметров и использовать required, чтобы сделать ключевые параметры обязательными. Ваши функции стали безопаснее и удобнее. 🎉

Часто задаваемые вопросы

Урок «Значения по умолчанию и required» бесплатный?

Да — полный текст урока «Значения по умолчанию и required» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Значения по умолчанию и required»?

Создание необязательных или обязательных параметров Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Значения по умолчанию и required»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление функций и типы возвращаемых значений
  2. Позиционные и именованные параметры
  3. Значения по умолчанию и required
  4. Функции как значения первого класса
← Назад к Dart Academy