typestar

Fundamentos del lenguaje

39 pasos en 8 series de Rust.

Rust antes de las partes difíciles. Variables, el sistema de tipos, valores compuestos, control de flujo, funciones, texto y las colecciones que más vas a usar. La coincidencia de patrones tiene su propia serie porque match no es una sentencia switch, y tratarlo como si lo fuera desperdicia lo mejor que tiene el lenguaje.

Treinta y nueve pasos, y nada te pelea todavía. La propiedad (ownership) es el siguiente tour, y ahí sí.

Empieza este tour

Variables y tipos

Valores compuestos

  • TuplasGrupos de tamaño fijo con tipos mezclados.
  • ArreglosLos arreglos de tamaño fijo viven en la pila y llevan su longitud en el tipo.
  • Structs de tupla y unitariosStructs sin nombres de campo: newtypes para el significado, structs unitarios como marcadores.
  • DesestructuraciónLos patrones desarman structs, tuplas y valores anidados en una sola vinculación.

Control de flujo

  • if / else if / elseRamificación donde cada rama es una expresión.
  • BuclesLas tres formas de bucle en Rust: for, while y loop.
  • RangosLos rangos son valores: puedes iterarlos, invertirlos y recorrerlos por pasos.
  • Bucles que devuelven valoresloop es una expresión: break saca un valor, y las etiquetas eligen qué bucle dejar.
  • while letwhile let sigue iterando mientras el patrón coincida — vaciar una pila, por ejemplo.
  • let elselet else vincula en el camino feliz y obliga a la rama de falla a divergir.
  • Todo es una expresiónBloques, ifs y matches evalúan a un valor; por eso Rust necesita pocas sentencias.
  • FizzBuzzEl clásico ejercicio de entrevista, escrito con match en vez de if.

Coincidencia de patrones

Funciones

  • FuncionesDefinir, componer y pasar funciones.
  • MCDEl algoritmo de Euclides, todavía la respuesta correcta más corta después de dos mil años.
  • Fibonacci iterativoFibonacci sin recursión, y un primer vistazo al shadowing.
  • Constantes y alias de tipoConstantes de compilación, statics que viven todo el programa y nombres para tipos largos.

Texto

  • Cadenas de formatoEl minilenguaje de formato: ancho, precisión, alineación, salida de depuración.
  • Parsear textoConvertir cadenas en números, y decidir qué significa una falla.
  • Construir cadenasHacer crecer un String, unir piezas y las formas baratas de cortar texto.

Colecciones

  • VectoresEl Vec redimensionable y sus métodos de todos los días.
  • Trabajar un VecLos métodos de Vec que hacen trabajo real: filtrar en el lugar, ordenar por clave, ventanas.
  • Ordenar y buscarOrdenar con un comparador, hallar extremos y buscar en un slice ordenado.
  • Búsqueda binariaReduce el rango a la mitad en cada paso, con la aritmética de índices que el borrow checker acepta.
  • La API entryUna búsqueda en vez de dos: entry te da la casilla, ocupada o no.
  • HashSetPertenencia y álgebra de conjuntos, sin valores duplicados por construcción.
  • BTreeMapUn mapa ordenado: la iteración sigue las claves, y puedes pedir un rango.
  • VecDequeUn buffer circular: push y pop en ambos extremos en tiempo constante.

Bis

  • temps.rsConvierte temperaturas Celsius de los argumentos a Fahrenheit.
  • grades.rsUn libro de calificaciones: structs, un HashMap de resultados y un reporte formateado.

Los otros tours de Rust