Usa el Ampersand en Rust
Rust es un lenguaje de programación de sistemas que enfatiza la seguridad y la velocidad. El compilador detecta errores comunes en el código, lo que significa que hay menos tiempo de depuración y menos problemas de seguridad.
Además de estas funciones, Rust tiene una función de ampersand (&
) que puede hacer que cualquier variable sea mutable o inmutable en cualquier punto del código.
Use el símbolo comercial (&
) para hacer una variable mutable o inmutable en Rust
Cuando emplea el signo ampersand (&
), se convierte en una referencia. La idea crucial aquí es que si enviamos una variable de referencia como argumento a una función, esa función tomará un argumento de referencia.
Notará un error de tiempo de compilación si no usa un ampersand (&
).
Concepto de Mutabilidad
En Rust, el símbolo de ampersand (&
) denota una referencia inmutable, y el ampersand mutable (&mut)
indica una referencia mutable.
Es muy importante entender el concepto de mutabilidad en Rust cuando se usan referencias. Muchas de las garantías de seguridad de Rust se basan en esta distinción entre referencias mutables e inmutables.
El ampersand mutable se puede mutar y reasignar sin necesidad de usar punteros o referencias. Esto proporciona una forma más eficiente de manejar la mutación porque elimina la necesidad de muchas copias y movimientos explícitos.
Analicemos un ejemplo.
fn main() {
let mut x = 6;
{
let y = &mut x;
*y -=2;
}
println!("A number is {}", x);
}
Producción :
A number is 4
Si no aplicáramos mut
en el ejemplo anterior, la siguiente línea no se ejecutaría. Y si no usamos la palabra clave mut
para construir una variable al principio, el programa dará una excepción.
Estábamos intentando obtener una referencia cambiable de una variable inmutable.
También hay un factor esencial a considerar: solo puede tener una referencia modificable. Como resultado, no puede construir numerosas referencias mutables.
Haga clic aquí para ver la demostración en vivo del código mencionado anteriormente.
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook