Fundamentos del lenguaje
26 pasos en 6 series de Mojo.
Mojo se lee como Python y compila como un lenguaje de sistemas, y este tour se queda en la mitad que resulta familiar. Tecleas variables, firmas de función con tipos, ramas, bucles, listas, diccionarios, cadenas y manejo de errores — el vocabulario sobre el que se apoyan todos los tours siguientes.
El parecido con Python es real, pero no total. Toda función es un def, una función que puede fallar tiene que decir raises en su firma, las listas de cadenas piden un tipo explícito, y no existe la indexación negativa. Teclear estas líneas es la forma más rápida de sentir dónde los dos lenguajes se separan.
Variables y funciones
- Hola desde MojoEl programa Mojo completo más pequeño: un punto de entrada y un print.
- Variables y tiposVinculaciones con tipo, y cómo se ve reasignarlas.
- Definir funcionesToda función de Mojo es un
defcon argumentos anotados. - Argumentos por defecto y con nombreLos valores por defecto dejan que una función cubra varias formas de llamada.
- Convertir entre tiposMojo convierte con constructores, no con casts.
- Funciones que lanzanUn
defno puede lanzar si su firma no lo dice.
Control de flujo
- if, elif y elseRamificar exactamente como se lee en Python.
- Bucles whileUn recorrido de Collatz: repetir hasta que la condición por fin cede.
- for y range
rangemaneja los bucles contados con uno, dos o tres argumentos. - break y continueDos maneras de hacer que un bucle cambie de idea a mitad de camino.
- Expresiones condicionales
a if cond else belige un valor sin abrir un bloque.
Colecciones
- Literales de listaLos corchetes construyen un
List, y el tipo del elemento va detrás. - Crecer y encoger una lista
append,insertypopcubren casi toda edición de listas. - DiccionariosAlmacenamiento clave-valor con el tipo de la clave y el del valor declarados.
- Recorrer un diccionario
items()entrega entradas que traen las dos mitades del par. - Buscar en una listaUna comprobación de pertenencia y un barrido de índices hecho a mano.
- Valores opcionales
Optionalmodela un resultado que puede no estar.
Cadenas
- Construir cadenas
+une cadenas, yString()trae los demás tipos consigo. - Métodos de cadenaRecortar y pasar a mayúsculas o minúsculas vienen con el
Stringestándar. - Unir cadenas
joinpega una lista de cadenas con un separador en medio. - Buscar dentro de una cadenaCuatro formas de preguntar si un texto aparece, o dónde.
- Bytes frente a caracteresUn
Stringguarda UTF-8, así que el largo depende de qué cuentes.
Errores
- Lanzar errores
raise Error(...)rechaza una entrada que la función no puede honrar. - try y exceptAtrapar un error mantiene el programa corriendo.
- Recuperarse de un errorUn ayudante que lanza, envuelto por quien lo llama con un fallback listo.
Bis
- Reporte de estadísticas de númerosUna muestra sembrada pasada por mínimo, máximo, media y dispersión.