Struct 将一个结构数组映射到Rust中的另一个结构数组,无需克隆
我使用的库具有以下结构:Struct 将一个结构数组映射到Rust中的另一个结构数组,无需克隆,struct,rust,iterator,closures,map-function,Struct,Rust,Iterator,Closures,Map Function,我使用的库具有以下结构: struct KeyValue1 { key: Vec<u8>, value: Vec<u8>, } fn get() -> Vec<KeyValue1> { /* ... */ } struct KeyValue2 { key: Vec<u8>, value: Vec<u8>, } 虽然这是可行的,但它克隆了两个载体,这是低效的。我不再需要原始的项向量,因此我想将所
struct KeyValue1 {
key: Vec<u8>,
value: Vec<u8>,
}
fn get() -> Vec<KeyValue1> { /* ... */ }
struct KeyValue2 {
key: Vec<u8>,
value: Vec<u8>,
}
虽然这是可行的,但它克隆了两个载体,这是低效的。我不再需要原始的项
向量,因此我想将所有权从KeyValue1
转移到KeyValue2
,但我还没有找到这样做的方法。在项
向量上使用而不是iter()
,如果转换后不需要它:
struct键值1{
关键词:Vec,
价值:Vec,
}
结构键值2{
关键词:Vec,
价值:Vec,
}
fn映射键值(项目:Vec)->Vec{
项目
.into_iter()
.map(| kv |键值2{
键:千伏键,
值:千伏值,
})
.collect()
}
let convertedItems = items.iter().map(|kv| -> KeyValue2{
key: key.clone(),
value: value.clone()
}).collect()