Sin embargo, podemos encontrar instancias en las que necesitamos usar y modificar un valor temporalmente. Podemos lograr esto usando préstamos. El préstamo es un concepto que nos permite pedir prestado un valor, usarlo y una vez que hayamos terminado, devuélvelo a su propietario en el mismo estado que fue cuando lo tomamos prestado. Esto significa que los préstamos no cambian el valor original.
Pedimos prestado un valor haciendo referencia a él utilizando su dirección de memoria y el operador &. Luego podemos pasar la referencia a una función y usar el valor como vemos en forma.
Reglas de referencia
Hay dos reglas para trabajar con referencias en Rust:
Referencia de óxido y valor de préstamo
En Rust, usamos el operador y para hacer referencia a una dirección de valor. Un código de ejemplo es como se muestra a continuación:
fn main ()En el código anterior, definimos una variable llamada "cadena". De acuerdo con las reglas de propiedad, esta variable posee el valor "hola".
Sin embargo, necesitamos usar esta variable en la función. Dado que un valor solo puede tener un propietario en un momento determinado, usarlo dentro de la función transferirá la propiedad. Como no queremos que la propiedad se transfiera a la función, tomamos prestado el valor utilizando haciendo referencia a su propietario.
Tenga en cuenta que agregamos el y operador en el tipo de parámetro de función. Esto le dice a Rust que estamos haciendo referencia al valor y que debemos devolverlo después de la finalización.
Referencias mutables
Si intentamos cambiar un valor prestado, el óxido dará como resultado un error. Tome el ejemplo a continuación:
fn main ()Ejecutar el código anterior debe devolver un error como:
Esto se debe a que las referencias son inmutables por defecto. Por lo tanto, no podemos modificar un valor prestado.
Podemos tener una referencia mutable que nos permita modificar un valor prestado. Considere el código de ejemplo a continuación:
fn main ()En el ejemplo anterior, establecemos la variable "cadena" t ser mutable. Luego creamos una referencia mutable usando la cadena & Mut en la llamada de función. Tenga en cuenta que el parámetro de la función acepta una referencia mutable, lo que permite que la función cambie el valor prestado.
Nota: Como se mencionó, solo puede tener una referencia mutable en un momento particular. Intentar crear más de una referencia mutable lanzará un error como se muestra:
fn main ()El código anterior debe devolver un error como se muestra:
Esta característica puede ayudar a prevenir las condiciones de la carrera al tomar prestados y hacer referencia a los valores.
Conclusión
Este artículo proporciona una comprensión básica del uso y el trabajo con préstamos de óxido y características de referencia. Puede consultar los documentos para explorar más.