Lección 9 / 20

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.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)