Значения аргументов по умолчанию
Делайте некоторые параметры необязательными.
«Значения аргументов по умолчанию» — бесплатный урок Mojo Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Mojo Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Mojo Academy содержит 4 уроков всего.
Как сделать параметр необязательным
Значение по умолчанию позволяет параметру иметь заранее заданное значение. Если вызывающий код его пропускает, Mojo незаметно использует значение из определения.
fn greet(name: String, times: Int = 1):
for _ in range(times):
print(name)Вызов с параметром и без него
Теперь оба вызова работают. Пропустите times — и получите значение по умолчанию 1; передайте его — и переопределите значение по умолчанию для этого вызова.
greet("Mojo") # times = 1
greet("Mojo", 3) # times = 3Чем полезны значения по умолчанию
Значения по умолчанию описывают распространённый случай. Большинству вызывающих кодов не нужно менять этот параметр, но для тех, кому это необходимо, такая возможность остаётся.
Значения по умолчанию идут последними
Параметры со значениями по умолчанию должны идти после обязательных параметров. Иначе Mojo не сможет понять, какое значение Вы хотели пропустить.
fn open(path: String, mode: String = "r"): ... # okСначала обязательные, затем необязательные
Представьте это так: сначала обязательные параметры, затем необязательные. Читая слева направо, Вы указываете необходимое, а для остальных принимаете значения по умолчанию. Такая структура предсказуема.
Переопределение только одного значения по умолчанию
Чтобы изменить более позднее значение по умолчанию, сохранив предыдущие, используйте именованный аргумент. Так Вы сразу переходите к нужному параметру.
fn make(width: Int = 80, height: Int = 24): ...
make(height=40) # width stays 80Несколько значений по умолчанию
Функция может сразу задать значения по умолчанию для нескольких параметров. Вызывающий код указывает только нужные значения, а остальные оставляет без изменений.
fn box(w: Int = 10, h: Int = 10, fill: String = "x"): ...Значения по умолчанию создают удобные интерфейсы
Хорошие значения по умолчанию упрощают начало работы с функцией и позволяют постепенно раскрывать её возможности. Начинающие вызывают её просто, а опытные настраивают параметры.
Выбор разумного значения по умолчанию
Выбирайте значение, которое большинство вызывающих кодов всё равно захотело бы использовать. Неожиданное значение по умолчанию хуже, чем его отсутствие: оно скрывает поведение, которого читатель не ожидал.
Значение по умолчанию вычисляется один раз
Выражение со значением по умолчанию относится к сигнатуре, а не к телу функции. Считайте его фиксированным запасным значением, описывающим обычный случай.
fn retry(count: Int = 3): ... # 3 is the documented normЗначения по умолчанию и имена особенно полезны вместе
Значения по умолчанию и именованные вызовы отлично дополняют друг друга. Вместе они позволяют создавать функции с множеством настроек, которые при этом остаются простыми для вызова.
request(url, timeout=30, retries=5)Быстрая проверка
Где в функции Mojo должен находиться параметр со значением по умолчанию?
Повторение: разумные запасные значения
Значения по умолчанию делают параметры необязательными и описывают распространённый случай. Размещайте их последними, выбирайте обдуманно, а отдельные параметры переопределяйте именованными аргументами.
Изучай Mojo с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Значения аргументов по умолчанию» бесплатный?
Да — полный текст урока «Значения аргументов по умолчанию» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Mojo Academy, подпишись на CoddyKit PRO. Курс Mojo Academy содержит 4 уроков всего.
Чему я научусь в уроке «Значения аргументов по умолчанию»?
Делайте некоторые параметры необязательными. Ты практикуешь Mojo Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Mojo Academy?
Предыдущий опыт не требуется. Mojo Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Значения аргументов по умолчанию»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Mojo Academy?
Да. Каждый урок Mojo Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Позиционные и именованные аргументы
- Значения аргументов по умолчанию
- Возврат нескольких значений
- Чтение сигнатур функций