Skip to content

Instantly share code, notes, and snippets.

@georgematos
Created May 17, 2024 00:55
Show Gist options
  • Save georgematos/3f5930ba2655f344feccd26c6a1c9616 to your computer and use it in GitHub Desktop.
Save georgematos/3f5930ba2655f344feccd26c6a1c9616 to your computer and use it in GitHub Desktop.
Rust - reference and derreference
fn main() {
let pointer_1 = String::from("Hello");
let pointer_2 = String::from("World");
let pointer_3 = "a literal string";
// cria o ponteiro pointer_4 apontando para 1 na heap
let pointer_4: Box<i32> = Box::new(1);
// cria uma referência do tipo Box<i32> para o pointer_4
let reference_1: &Box<i32> = &pointer_4;
/* para derreferenciar e acessar o valor 1 na heap preciso fazer duas derreferencias,
a primeira para voltar ao pointer_4 e a segunda para voltar do pointer_4 para o valor na heap */
let derreference_1: i32 = **reference_1;
println!("{pointer_1} {pointer_2}");
// println!("{reference_1}");
println!("{pointer_3}");
println!("{pointer_3}");
println!("{pointer_4}");
println!("{derreference_1}");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment