愚蠢的n00b試圖學習一些關於鏽。下面是我的程序:對矢量的引用仍然打印爲矢量?
fn main() {
let v = vec![1, 2, 3];
println!("{:?}", v);
println!("{:?}", &v);
}
產生的輸出:
[1, 2, 3]
[1, 2, 3]
什麼&
點?我有一半期望它打印一個內存地址。
我最初被intro拋出,看起來像是在循環到的引用。我的猜測是Rust會發揮一些魔力並檢測到它是一個向量的內存地址?
謝謝。我讀了迭代器的一節,並看到'for in in&v'給了我作爲v的每個元素的引用。for循環正在做出我想要引用每個可迭代元素的魔法 - 作爲反對試圖遍歷指針。那是對的嗎? – speg
@speg我加了一個關於它的部分。基本上,'爲了我在foo'使用'IntoIterator',並且''Vec'這個特性的一個實現代表'Vec :: iter'。 'Vec :: iter'返回一個迭代器,它產生對向量中每個項目的引用。 –
Shepmaster