怎么可能同时使用两个数组呢? zip只会提供参考,而我需要实际的对象将它们添加到地图中。
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
}
Run Code Online (Sandbox Code Playgroud)
您的变量array1和array2不是数组,它们是对切片的不可变引用,相似但不相同。您无法获得隐藏在不可变引用后面的数据的所有权。因此,.into_iter()将产生&Strings,故障不是由于 造成的.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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |