Ниже приведен фрагмент кода ( детская площадка ), который я пытался запустить:
fn main() {
let a = vec!["hello".to_string(), "world".to_string()];
let b = vec![10, 20, 30];
let c = a[0];
let d = b[0];
println!("{:?}", c);
println!("{:?}", d);
}
Ошибка говорит о том, что «значения не могут быть перемещены из заимствованного содержимого»:
error[E0507]: cannot move out of borrowed content
--> src/main.rs:5:13
|
5 | let c = a[0];
| ^^^^
| |
| cannot move out of borrowed content
| help: consider borrowing here: `&a[0]`
Но я не вижу никаких явных заимствований.Где именно осуществляется заимствование?А что одолжено?И что такое заимствованный контент, упомянутый в ошибке?
Этого не происходит с примитивными типами, такими как float, chars и т. Д. Может быть, потому что значения копируются, а не перемещаются, что возможнотолько в случае примитивов (структур данных, значения которых полностью хранятся в стеке, а не в куче).