¿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
La propiedad, lo básico
En esta lección conocerás la idea central de Rust: la propiedad (ownership).
La regla es sencilla de enunciar: cada valor tiene un único dueño, y cuando ese dueño desaparece, la memoria se libera automáticamente. Al asignar un String a otra variable, la propiedad se mueve, y la variable original deja de poder usarse. Para conservar las dos hay que hacer una copia explícita con clone().
El código de ejemplo crea un texto, lo duplica con clone() y muestra los dos. Prueba mentalmente a quitar el .clone(): el programa dejaría de compilar, porque s1 ya no sería el dueño de nada.
Ese error, «value borrowed here after move», es el rito de paso de todo el que aprende Rust. Conviene verlo desde el otro lado: el compilador te está avisando de que dos partes del código querían mandar sobre el mismo dato. En C eso compila y produce un fallo por doble liberación; en lenguajes con recolector de basura funciona, pero a costa de pausas en tiempo de ejecución. Rust escoge una tercera vía: lo comprueba al compilar y no cuesta nada al ejecutar.
En el trabajo real casi nunca se usa clone() a lo loco, porque copia de verdad los datos. Lo habitual es prestar el valor con referencias, que es justo lo que verás en la lección siguiente.
🧪 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).
