生锈语言引用似乎用调用IntoIterator::into_iter对in关键字后面提供的表达式调用for循环以获得Iterator,然后使用该Iterator检索要循环的元素。(1, 2, 3);
for i in v { ... } // v impl IntoIteratorv.into_iter() { ... } // v.into_iter() impl Iterator
因此,尖
如何循环实现into_iter的概念一直困扰着我,这个给我带来了更多的问题,比如重借的条款,除了之外,在生锈的正式文档中根本没有提到这个问题。据我对这个的理解,当vec是一个可变的引用时,for i in vec.into_iter()实际上是场景后面的for i in (&mut *vec).into_iter()。("{}", item); for &mut item in vec { // --- `vec` moved due to this implicit call to
&arr);当我编译第一个程序时,它失败了: --> src/main.rs:12:292for &mut val in arr {
| --- `arr` moved due to this implicit call to `.into_iter第一种情况将隐式调用into_iter(),它失败了,当我调用into_iter()时