给出防锈选项:
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的.
运算符按照您的意思执行,并且隐式借用了该变量。如果不是这样,使用值将很烦人,如果没有先借用let mut v = vec![1, 2, 3]
就不能在v.push(4)
之后跟v
这样简单的事情。
防止噪声提示C使用two运算符进行成员访问,.
和->
,后者自动取消引用。 Rust的.
故意进行,并进行方法调用工作所需的借用或取消引用。