Прежде чем я прочту книгу, ссылка на кучу выглядит так:
let v: Vec<f64> = vec![0.0, 0.707, 1.0, 0.707];
let a: [f64; 4] = [0.0, -0.707, -1.0, -0.707];
let sv: &[f64] = &v;
let sa: &[f64] = &a;
(из Programming Rust)
svэто ссылка на кучу, поэтому она указывает на тот же адрес в куче, что и v.
Но я прочитал статью из https://www.net.in.tum.de/fileadmin/bibtex/publications/theses/2018-ixy-rust.pdf.
fn main(){
let s = String ::from("hello");
let r = &s;
let t = s;
println!("{}", r);
}
(код не может быть запущен, потому что он использует ссылку после перемещения)
мммм, просто укажите адрес в стеке. Да, это действительно ссылка, но ссылка в ржавчине - это указатель (верно?).
Это изображение такое же, как и выше, если значение выделено в стеке. И это более естественно объяснить, почему нельзя использовать заем позже после перемещения,
Итак, что такое corrent?