Parámetros frente a argumentos
Valores en tiempo de compilación frente a valores en tiempo de ejecución.
Parámetros frente a argumentos es una lección gratuita de Mojo Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en 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 * xParameters 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. 🎯
Preguntas frecuentes
¿La lección «Parámetros frente a argumentos» es gratis?
Sí — el texto completo de «Parámetros frente a argumentos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Parámetros frente a argumentos»?
Valores en tiempo de compilación frente a valores en tiempo de ejecución. Practicas Mojo Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Mojo Academy?
No se requiere experiencia previa. Mojo Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Parámetros frente a argumentos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Mojo Academy?
Sí. Cada lección de Mojo Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Parámetros frente a argumentos
- Funciones parametrizadas
- Structs parametrizadas
- Por qué el tiempo de compilación mejora la velocidad