Rust as#deref函数不';我不能改变我的具体类型
我想用将我的Rust as#deref函数不';我不能改变我的具体类型,rust,optional,Rust,Optional,我想用将我的选项转换为选项,但编译器似乎误解了我的意图。如果我用.map(|e | e.as_str())替换它它会工作 使用std::collections::HashMap; 西普菲尔德{ fn from(&self)->选项; } HashMap的impl SipField{ fn来自(&self)->选项{ self.get(“from”) .或| | | self.get(“f”)) .然后(| i | i.first()) .as_deref() } } 错误[E0308]:类型不
选项
转换为选项
,但编译器似乎误解了我的意图。如果我用.map(|e | e.as_str())替换它
它会工作
使用std::collections::HashMap;
西普菲尔德{
fn from(&self)->选项;
}
HashMap的impl SipField{
fn来自(&self)->选项{
self.get(“from”)
.或| | | self.get(“f”))
.然后(| i | i.first())
.as_deref()
}
}
错误[E0308]:类型不匹配
-->src/lib.rs:9:9
|
9 |/self.get(“from”)
10 | | |或|其他(| | self.get(“f”))
11 | |然后(| i | i.first())
12 | |作为
||uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu^应为'str',找到结构'std::string::string`
|
=注意:应为enum`std::option::option`
找到枚举'std::option::option'`
请注意,as_deref
可以将选项
转换为选项
,但是您有一个选项
,因此编译器会将选项
转换为选项
。@Jmb不应该有两个作为_deref()工作吗?@Stargateur:如果有一个作为_deref()
调用将一个选项
转换为一个选项
,两个as_deref()
调用将一个选项
转换为一个选项
。