¿Ya dominas lo básico? Un curso estructurado de Rust es la vía rápida para dar el salto.
Ver cursos de Rust en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (println!)
- 03Variables y mutabilidad (let / mut)
- 04Anotaciones de tipo y tipos básicos
- 05Condicionales (la expresión if)
- 06Repetir (el bucle for)
- 07Escribir tu propia función
- 08Repetir (while y loop)
- 09La propiedad, lo básico
- 10Préstamos (referencias, &)
- 11Trabajar con vectores (Vec)
- 12Estructuras (struct)
- 13enum y la expresión match
- 14El tipo Option (seguridad frente a null)
- 15El tipo Result y el manejo de errores
- 16Traits (comportamiento compartido)
- 17Genéricos
- 18Closures (funciones anónimas)
- 19Trabajar con texto (String)
- 20[Proyecto] Construye un mini sistema de inventario
Trabajar con texto (String)
En esta lección transformarás una cadena de texto y medirás su tamaño.
String::from() crea un texto del que eres dueño. to_uppercase() devuelve una copia en mayúsculas —no modifica el original— y len() devuelve su longitud en bytes.
El código de ejemplo muestra el mismo texto en mayúsculas y su tamaño.
Ese len() es la trampa clásica, y en español se nota mucho más que en inglés: el texto del ejemplo empieza por ¡, que ocupa 2 bytes en UTF-8, así que el número que sale es mayor que la cantidad de letras. Rust es deliberadamente explícito aquí: len() son bytes, chars().count() son caracteres, y ninguno de los dos es «la longitud» sin más.
Por el mismo motivo, en Rust no puedes indexar un texto con message[0]. El compilador lo prohíbe porque el byte cero podría ser medio carácter. Molesta al venir de Python, pero es la razón por la que un programa en Rust no se rompe la primera vez que un usuario escribe un acento o un emoji.
🧪 Este sitio no puede compilar ni ejecutar Rust directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
