0Pricing
Mojo Academy · Aula

Parâmetros versus argumentos

Valores de tempo de compilação versus valores de tempo de execução.

Parâmetros versus argumentos é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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. 🎯

Perguntas Frequentes

A aula “Parâmetros versus argumentos” é grátis?

Sim — o texto completo de “Parâmetros versus argumentos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.

O que vou aprender em “Parâmetros versus argumentos”?

Valores de tempo de compilação versus valores de tempo de execução. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Mojo Academy?

Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Parâmetros versus argumentos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Mojo Academy?

Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Parâmetros versus argumentos
  2. Funções parametrizadas
  3. Structs parametrizadas
  4. Por que o tempo de compilação aumenta a velocidade
← Voltar para Mojo Academy