了解锈选项as_mut方法

问题描述 投票:0回答:1

给出防锈选项:

let mut x = Some(3);

为什么我可以直接打电话给x.as_mut()?从the doc中可以看到,as_mut定义为:

pub fn as_mut(&mut self) -> Option<&mut T>从&mut转换选项到选项。

期望第一个参数为&mut self,即&mut Option<T>。我不应该改用(&mut x).as_mut()吗?

rust optional
1个回答
0
投票

这里Rust的.运算符按照您的意思执行,并且隐式借用了该变量。如果不是这样,使用值将很烦人,如果没有先借用let mut v = vec![1, 2, 3]就不能在v.push(4)之后跟v这样简单的事情。

防止噪声提示C使用two运算符进行成员访问,.->,后者自动取消引用。 Rust的.故意进行,并进行方法调用工作所需的借用或取消引用。

© www.soinside.com 2019 - 2024. All rights reserved.