gpt4 book ai didi

functional-programming - 在过滤掉 Rust 中的 None 元素后,是否有可能以某种方式将 Vec> 转换为 Vec

转载 作者:行者123 更新时间:2023-11-29 08:13:39 25 4
gpt4 key购买 nike

<分区>

在编写如下代码时,我想要一些方法来进行这样的转换:

struct Value;

fn remove_missed(uncertain_vector: Vec<Option<Value>>) -> Vec<Value> {
uncertain_vector
.into_iter()
.filter(|element| match element {
Some(val) => true,
None => false,
})
.collect()
}

我怎样才能做到这一点?我认为类型隐含机制不够智能,无法确定生成的集合将仅包含 Option<Value>。其中所有此类对象的类型都相同 ( Value )。

编译器部分回答了我的问题:

error[E0277]: a collection of type `std::vec::Vec<Value>` cannot be built from an iterator over elements of type `std::option::Option<Value>`
--> src/lib.rs:10:10
|
10 | .collect()
| ^^^^^^^ a collection of type `std::vec::Vec<Value>` cannot be built from `std::iter::Iterator<Item=std::option::Option<Value>>`
|
= help: the trait `std::iter::FromIterator<std::option::Option<Value>>` is not implemented for `std::vec::Vec<Value>`

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