Mojo Academy · Урок

Когда использовать каждую из них

Подбирайте стиль функции под свою цель.

Урок 3 из 413 шагов

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

Два инструмента — один выбор

Mojo предоставляет и def, и fn. Правильный выбор означает соответствие инструмента реальным потребностям Вашего кода. 🧭

Выбирайте def ради гибкости

Выбирайте def, когда исследуете идею, создаёте прототип или хотите пользоваться простотой Python, пока не готовы явно задавать типы.

def quick_test(data):
    return len(data)

Выбирайте fn ради производительности

Выбирайте fn, когда важны скорость и безопасность: в тесных циклах, библиотечном коде и везде, где компилятор должен проверять типы.

fn fast_add(a: Int, b: Int) -> Int:
    return a + b

Сначала прототипируйте, затем укрепляйте

Обычно логику сначала набрасывают с помощью def, а затем переписывают самые нагруженные участки на fn, когда структура решения устоялась.

Компромисс типобезопасности

Используя def, Вы отказываетесь от проверок во время компиляции ради свободы. Используя fn, Вы отказываетесь от свободы ради раннего обнаружения ошибок.

Читаемость тоже важна

Сигнатура fn читается как документация: её типы точно показывают следующему разработчику, что поступает на вход и что получается на выходе.

fn distance(x: Float64, y: Float64) -> Float64:
    return x * x + y * y

Свободно сочетайте оба варианта

Вы можете вызвать fn из def и наоборот. Они прекрасно сосуществуют в одном файле Mojo.

Для взаимодействия часто подходит def

При работе с динамическими объектами Python через взаимодействие с другими языками def может оказаться удобнее, поскольку типы могут быть заранее неизвестны.

Для нагруженных циклов подходит fn

Числовые ядра и внутренние циклы следует помещать в fn: известные типы позволяют Mojo создавать максимально оптимизированный код.

Начать можно как угодно

Вы всегда можете начать с того варианта, который кажется естественнее. Позже заменить def на fn — небольшое и безопасное изменение.

Простое практическое правило

Если Вам полезно, чтобы compiler проверял типы и повышал скорость, пишите fn; в остальных случаях def сохраняет простоту.

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

Подберите для ситуации более подходящий стиль функции.

Итоги

Используйте def, когда нужны гибкость и быстрые итерации, а fn — когда необходимы типобезопасность и скорость. 🎯

Можно начать бесплатно

Изучай Mojo с ИИ-репетитором — бесплатно

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

Курсы
30
Уроки
120

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

Урок «Когда использовать каждую из них» бесплатный?

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

Чему я научусь в уроке «Когда использовать каждую из них»?

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

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

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

Сколько времени занимает урок «Когда использовать каждую из них»?

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

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

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

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

  1. Написание функции def
  2. Написание функции fn
  3. Когда использовать каждую из них
  4. Типы возвращаемых значений и None
← Назад к Mojo Academy