0Pricing
Mojo Academy · Урок

Параметры и аргументы

Значения времени компиляции и значения времени выполнения.

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

Части этого урока еще не переведены и отображаются на английском.

Two Kinds of Input

Mojo functions can take two kinds of input: parameters known at compile time, and arguments known at runtime. Knowing the difference is the key.

Arguments Live at Runtime

An argument is an ordinary value you pass when the program runs. Its actual number can change every single time you call the function.

fn square(x: Int) -> Int:
    return x * x

Parameters Live at Compile Time

A parameter is a value the compiler already knows before your program runs. It is fixed and baked right into the generated code. ⚙️

Brackets vs Parentheses

Mojo keeps them visually separate: parameters go in square brackets, while arguments stay in the familiar parentheses.

fn repeat[count: Int](msg: String):
    print(msg)

Reading the Signature

In repeat[count: Int](msg: String), the count is set at compile time and msg is supplied later when you actually call it.

Compile Time Means Earlier

Think of compile time as the moment Mojo translates your code, long before it runs. Parameters are decided in that earlier phase.

Why Separate Them

Keeping compile-time and runtime values separate lets the compiler specialize and optimize code that the runtime simply cannot.

Passing a Parameter

You supply a parameter in brackets at the call site, just like you supply arguments in parentheses right after it.

repeat[3]("hi")

Parameters Must Be Known

A parameter value must be a compile-time constant. You cannot pass a number you only computed while the program was running.

A Familiar Example

The built-in SIMD type takes its element type and width as parameters, then holds real numbers as runtime values inside it.

var v = SIMD[DType.int32, 4](1, 2, 3, 4)

The Mental Model

Picture two slots: the bracket slot for compile-time facts, the parenthesis slot for runtime data. Mojo treats them very differently.

Quick Check

Tell apart parameters and arguments in Mojo.

Recap

You learned the split: parameters are compile-time values in brackets, arguments are runtime values in parentheses. That divide powers Mojo's speed. 🎯

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

Урок «Параметры и аргументы» бесплатный?

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

Чему я научусь в уроке «Параметры и аргументы»?

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

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

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

Сколько времени занимает урок «Параметры и аргументы»?

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

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

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

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

  1. Параметры и аргументы
  2. Параметризованные функции
  3. Параметризованные struct
  4. Почему время компиляции повышает скорость
← Назад к Mojo Academy