小编Ded*_*mer的帖子

如何从 .map() 输出多个值或在一次迭代中使用 map 两次?

如何在一个 into_iter 上使用两次 map ?目前我有。

let res_arr_to: Vec<String> = v.result.transactions.into_iter().map( |x| x.to).collect();
let res_arr_from: Vec<String> = v.result.transactions.into_iter().map( |x| x.from).collect();
Run Code Online (Sandbox Code Playgroud)

我想要的是两个数组都在一个数组中,顺序并不重要。我需要一个输出两个值的闭包(如果这甚至是一个闭包?)。或者一种在一次迭代中使用 map 两次的方法,而不使用生成的值,而是使用未触及的迭代器(如果有意义并且可能的话)。我在函数式编程方面完全是菜鸟,所以如果有一种完全不同的方法来做到这一点,另一个解释就可以了。

v 是 EthBlockTxResponse:

#[derive(Debug, Deserialize)]
struct EthTransactionObj {
    from: String,
    to: String

}

#[derive(Debug, Deserialize)]
struct EthTransactions {
    transactions : Vec<EthTransactionObj>
}

#[derive(Debug, Deserialize)]
struct EthBlockTxResponse {
    result : EthTransactions
}
Run Code Online (Sandbox Code Playgroud)

谢谢

iterator functional-programming rust

2
推荐指数
1
解决办法
5645
查看次数

标签 统计

functional-programming ×1

iterator ×1

rust ×1