Lección 10 / 20

Préstamos (referencias, &)

En esta lección pasarás un valor a una función sin cederle la propiedad.

Anteponer & crea una referencia: la función puede leer el dato, pero no se convierte en su dueña, así que quien la llamó lo sigue teniendo después. A eso se le llama tomar prestado. El método len() devuelve la longitud en bytes.

El código de ejemplo pasa un texto a una función que solo lo mide. Fíjate en que text se sigue usando en la línea del println!: precisamente porque se prestó en lugar de moverse.

Las reglas del préstamo son dos y conviene aprendérselas pronto: puedes tener muchas referencias de solo lectura a la vez, o una sola de escritura (&mut), pero nunca las dos cosas al mismo tiempo. Suena restrictivo, y es exactamente lo que hace imposibles las condiciones de carrera entre hilos: el compilador rechaza el programa antes de que llegue a ejecutarse.

Un detalle que sorprende en la salida: len() cuenta bytes, no caracteres. En español eso se nota enseguida, porque una ¡ o una ñ ocupan dos bytes en UTF-8. Para contar caracteres de verdad hay que usar chars().count().

📖 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)