下面通过实践来查验对Reborrow概念的明白。
回到第一节中遇到的标题,解决方式就是在第一次遍历v时(第9行),不要把全部权转移出去,
这样,第二次遍历v(第22行)的时间,就不会报出"value used here after move"的错误。
根据Reborrow的机制,我们在第9行可以Reborrow可变借用v,这样转移出去的是被再次借用的v,而不是v本身。
改变方法很简单,第9行改为for n in &*v {即可,也就是先还原v(*v),然后Reborrow(&*v)。
修改后再次运行代码: