for val in vals这句是可以单步跟进去到std内部的源代码的,调用的Vec<T>::into_iter(),
for val in vals也就是for val in vals.into_iter(),
里面会调用std::mem::forget(self)转移ownership。
是整体转移,不是逐个减少vals中的元素个数。
![单击此查看原图](//static.mysmth.net/nForum/att/Programming/192323/650/middle)
![单击此查看原图](//static.mysmth.net/nForum/att/Programming/192323/165425/middle)
【 在 txgx 的大作中提到: 】
: 综合15楼的分析,有一点可以肯定
: for v in vals 把vector 清空了!
: 如果println可以工作的话,那么输出应该是4,3,2,1,0
: ...................
--
FROM 123.115.133.*