Símbolo & | Rust
- Símbolo
&| Rust
Referência de & em Rust
Introdução
O símbolo & em Rust está diretamente relacionado ao sistema de ownership e referências da linguagem. Ele é utilizado para criar uma referência a um valor, permitindo o acesso sem a transferência de posse (ownership).
Tipos de uso de &
Referência Imutável
let x = 10;
let r = &x; // r é uma referência imutável a x
println!("O valor de x é: {}", r);
&xcria uma referência imutável ao valor dex.- Permite leitura, mas não modificação.
- Um valor pode ter várias referências imutáveis ao mesmo tempo.
Referência Mutável
let mut x = 10;
let r = &mut x; // r é uma referência mutável a x
*r += 1;
println!("Novo valor de x: {}", r);
&mut xcria uma referência mutável.- Permite leitura e modificação.
- Um valor só pode ter uma referência mutável por vez.
Padrão de Borrow Checker
Rust garante em tempo de compilação que:
- Ou você tem várias referências imutáveis,
- Ou uma única referência mutável. Nunca ambos ao mesmo tempo.
Uso em Padrões e Match
let x = Some(5);
match x {
Some(&val) => println!("Valor é {}", val),
None => println!("Sem valor"),
}
&valextrai o valor de dentro da referência.
Desreferenciamento com *
Quando você tem uma referência (&T), pode acessar seu valor com *:
let x = 42;
let r = &x;
println!("Valor: {}", *r); // desreferencia r
Em Funções
fn imprime(valor: &i32) {
println!("Valor: {}", valor);
}
let x = 100;
imprime(&x);
&i32indica que a função recebe uma referência a umi32.imprime(&x)passa uma referência imutável dex.