函数返回 &选项 而不是选项

  • 本文关键字:选项 函数 返回 rust
  • 更新时间 :
  • 英文 :


我是Rust的初学者,我不理解我遇到的行为。函数1应该返回一个Option类型,但是返回一个&Option类型。我已经通过做函数2解决了这个问题,但我不明白为什么会这样。我在函数中做错了什么?

功能1:

pub fn manage_request(&self, request:String) -> Option<Some type> {
let words : Vec<&str> = request.split_whitespace().collect();
match words[0] {
"attach" => &self.hashmap.get(words[1]),
_ => None,
}
}

功能2:

pub fn manage_request(&self, request:String) -> Option<Some type> {
let words : Vec<&str> = request.split_whitespace().collect();
match words[0] {
"attach" => match &self.hashmap.get(words[1]){
None => None,
Some(x) => Some(x)
}
_ => None,
}
}
下面是rust playground的链接,代码为

如果我错了请纠正我,但我认为你实际上做得很好,但可能遗漏了一个错别字。

在你的游乐场中,你的签名通过说fn manage_request(self)来消耗自我。如果你把它改成像fn manage_request(&self)一样引用self,我相信它是有效的。

更新后的游乐场链接运行无编译错误:

最新更新