长沙医院网站建设,免费软件加速器,wordpress如何设置ssl,南昌地宝网二手车在Rust中#xff0c;iter(), into_iter(), iter_mut()都是用于在集合类型上创建迭代器的方法。这三个方法各有不同#xff0c;下面一一进行介绍。 iter(): iter() 方法创建一个不可变的引用迭代器。当你只想读取集合中的元素#xff0c;而不想改变它们或消耗集合时#xff…在Rust中iter(), into_iter(), iter_mut()都是用于在集合类型上创建迭代器的方法。这三个方法各有不同下面一一进行介绍。 iter(): iter() 方法创建一个不可变的引用迭代器。当你只想读取集合中的元素而不想改变它们或消耗集合时应使用 iter()。iter() 返回的迭代器将生成集合中每个元素的不可变引用。 let v vec![1, 2, 3];
for i in v.iter() {println!({}, i);
}在上面的代码中i 的类型是 i32它是对元素的引用我们不能修改这些元素。 into_iter(): into_iter() 方法创建一个消耗集合的迭代器。into_iter() 会获取集合的所有权并返回集合中每个元素的所有权。在你想要转移集合中元素所有权时应使用 into_iter()。 let v vec![1, 2, 3];
for i in v.into_iter() {println!({}, i);
}在这个例子中i 的类型是 i32。into_iter() 消耗了 v这意味着 v 在此后不能再被使用。 iter_mut(): iter_mut() 创建一个可变引用迭代器。当你想要修改集合中的元素时应使用 iter_mut()。iter_mut() 返回的迭代器将生成集合中每个元素的可变引用。 let mut v vec![1, 2, 3];
for i in v.iter_mut() {*i 1;
}在这个例子中i 的类型是 mut i32我们可以修改 v 中的元素。
总结iter() 返回不可变引用into_iter() 获取元素的所有权并消耗集合iter_mut() 返回可变引用。选择哪一个取决于你是否需要修改元素或是否需要元素的所有权。
into_iter() 方法
在Rust中into_iter 是一个方法其功能是将一个集合转换成一个迭代器。这个迭代器可以逐个访问集合中的元素使我们能够遍历集合。
不同于 iter() 和 iter_mut()into_iter() 方法会消耗take ownership of原集合这意味着集合在 into_iter() 调用之后将无法再次使用。这是因为 into_iter() 产生的迭代器每次迭代都会移出一个元素直到集合为空。
以下是一个 into_iter() 的示例
let vec vec![1, 2, 3];
let mut iter vec.into_iter();
assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(None, iter.next());在这个例子中我们创建了一个包含三个元素的向量并通过调用 into_iter() 将其转换为一个迭代器。然后我们通过反复调用 next() 来逐个获取元素。当所有元素都被取出后next() 返回 None表示没有更多的元素。
再次提醒由于 into_iter() 会消耗原集合所以在 into_iter() 调用之后原向量 vec 就无法再次使用了。这就是所谓的消耗性迭代。
iter.next() 方法
在 Rust 中iter.next() 是迭代器接口中的方法用于获取序列中的下一个元素。next 方法的返回类型通常是 OptionT其中 T 是你正在迭代的集合中元素的类型。
当还有可用元素时next 方法会返回 Some(element)这里的 element 是序列中的下一个元素。当所有元素都已经被迭代完next 方法会返回 None表示没有更多的元素可以迭代。
所以iter.next() 返回 Some(1) 表示迭代器的下一个元素是 1。当你看到 assert_eq!(Some(1), iter.next()); 这样的代码时它的意思是我们期望迭代器的下一个元素是 1。如果不是那么这个断言就会失败程序就会停止执行。
请注意迭代器会在每次调用 next 方法时消耗一个元素。这意味着如果你再次调用 next你会得到序列中的下一个元素或者如果没有更多元素就会得到 None。 文章转载自: http://www.morning.wjpsn.cn.gov.cn.wjpsn.cn http://www.morning.lpskm.cn.gov.cn.lpskm.cn http://www.morning.kxryg.cn.gov.cn.kxryg.cn http://www.morning.qjngk.cn.gov.cn.qjngk.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.kgphc.cn.gov.cn.kgphc.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.nlryq.cn.gov.cn.nlryq.cn http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.qrhh.cn.gov.cn.qrhh.cn http://www.morning.lgxzj.cn.gov.cn.lgxzj.cn http://www.morning.rfbt.cn.gov.cn.rfbt.cn http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.kmqlf.cn.gov.cn.kmqlf.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.mspqw.cn.gov.cn.mspqw.cn http://www.morning.jlpdc.cn.gov.cn.jlpdc.cn http://www.morning.xfxlr.cn.gov.cn.xfxlr.cn http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn http://www.morning.prfrb.cn.gov.cn.prfrb.cn http://www.morning.plpqf.cn.gov.cn.plpqf.cn http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn http://www.morning.cywf.cn.gov.cn.cywf.cn http://www.morning.xplng.cn.gov.cn.xplng.cn http://www.morning.bwjws.cn.gov.cn.bwjws.cn http://www.morning.lywcd.cn.gov.cn.lywcd.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.pjwml.cn.gov.cn.pjwml.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.kbdjn.cn.gov.cn.kbdjn.cn http://www.morning.pqqzd.cn.gov.cn.pqqzd.cn http://www.morning.prjty.cn.gov.cn.prjty.cn http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn http://www.morning.wtsr.cn.gov.cn.wtsr.cn http://www.morning.bwjgb.cn.gov.cn.bwjgb.cn http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn http://www.morning.mkxxk.cn.gov.cn.mkxxk.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.knzdt.cn.gov.cn.knzdt.cn http://www.morning.gthwz.cn.gov.cn.gthwz.cn http://www.morning.snygg.cn.gov.cn.snygg.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.yxplz.cn.gov.cn.yxplz.cn http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn http://www.morning.kyfrl.cn.gov.cn.kyfrl.cn http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn http://www.morning.ysfj.cn.gov.cn.ysfj.cn http://www.morning.tftw.cn.gov.cn.tftw.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn http://www.morning.taojava.cn.gov.cn.taojava.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.hffjj.cn.gov.cn.hffjj.cn http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn http://www.morning.fwzjs.cn.gov.cn.fwzjs.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn http://www.morning.prplf.cn.gov.cn.prplf.cn http://www.morning.tkxr.cn.gov.cn.tkxr.cn http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn http://www.morning.mdmxf.cn.gov.cn.mdmxf.cn http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn http://www.morning.gnwpg.cn.gov.cn.gnwpg.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.tpfny.cn.gov.cn.tpfny.cn http://www.morning.twfdm.cn.gov.cn.twfdm.cn