gpt4 book ai didi

rust - 如何在使用 zip 迭代时同时使用两个数组?

转载 作者:行者123 更新时间:2023-12-03 08:04:07 31 4
gpt4 key购买 nike

如何同时使用两个数组? zip 只会提供引用,而我需要实际的对象将它们添加到 map 中。

let array1 : &[String] = &["abc".to_string(),"bcd".to_string()]
let array2 : &[String] = &["bcd".to_string(),"abc".to_string()]


for a,b in array1.into_iter().zip(array2.into_iter()){
map.insert(a,b); // Doesn't work because a and b are &String instead of String
}

最佳答案

你的变量array1array2不是数组,它们是对切片的不可变引用,类似但不一样。您无法获得隐藏在不可变引用后面的数据的所有权。因此,.into_iter() 将产生 &String,错误不是由于 .zip() 引起的。

你想要的是这样的:

let array1 = ["abc".to_string(), "bcd".to_string()];
let array2 = ["bcd".to_string(), "abc".to_string()];

for (a, b) in array1.into_iter().zip(array2.into_iter()) {
map.insert(a, b);
}

关于rust - 如何在使用 zip 迭代时同时使用两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72986235/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com