Saltar al contenido

Diagnóstico

Lee el error como una transferencia

Rust
fn consumir(texto: String) { println!("{texto}"); }let mensaje = String::from("hola");consumir(mensaje);// println!("{mensaje}"); // E0382 si se descomenta

Busca la primera expresión que consume mensaje: la llamada entrega el valor al parámetro texto. Que la función termine no devuelve el dueño al llamador.

Si la función solo necesita leer, cambia su contrato a un préstamo. Si debe conservar el valor, el llamador tiene que aceptar la transferencia o crear una copia independiente.

Referencia: diagnóstico oficial E0382.

¿Qué consume mensaje en el ejemplo?