这个不起作用:
错误信息:
我不知道为什么;应该将
let vectors = vec![1, 2, 3, 4, 5, 6, 7];
for i in vectors {
println!("Element is {}", i);
}
let largest = vectors[0];
错误信息:
error[E0382]: borrow of moved value: `vectors`
--> src/main.rs:8:19
|
2 | let vectors = vec![1, 2, 3, 4, 5, 6, 7];
| ------- move occurs because `vectors` has type `std::vec::Vec<i32>`, which does not implement the `Copy` trait
3 |
4 | for i in vectors {
| -------
| |
| value moved here
| help: consider borrowing to avoid moving into the for loop: `&vectors`
...
8 | let largest = vectors[0];
| ^^^^^^^ value borrowed here after move
矢量已移入循环中。它的所有权及其各个元素的所有权已永久转移至此。
但这是有效的:
let largest = vectors[0];
let largest2 = vectors[0];
我不知道为什么;应该将
vectors [0]
的值移动到largest
中,然后使largest2
失败,但实际上并没有。