Rust 将防锈选项理解为一种方法
给出一个防锈选项:Rust 将防锈选项理解为一种方法,rust,optional,Rust,Optional,给出一个防锈选项: let mut x = Some(3); 为什么我可以直接调用x.as_mut()?如我所见,As_mut的定义如下: pub fn as_mut(&mut self)->选项Converts from&mut 选项对选项 它期望第一个参数是和mut self,即和mut Option。我不应该使用(&mut x).as_mut()来代替吗?这里Rust的操作符执行您的意思,并隐式借用变量。如果没有,使用非借用值会很烦人,因为一个值声明为,例如,let mut v=vec!
let mut x = Some(3);
为什么我可以直接调用x.as_mut()
?如我所见,As_mut
的定义如下:
pub fn as_mut(&mut self)->选项
Converts from&mut
选项对选项
它期望第一个参数是
和mut self
,即和mut Option
。我不应该使用(&mut x).as_mut()
来代替吗?这里Rust的
操作符执行您的意思,并隐式借用变量。如果没有,使用非借用值会很烦人,因为一个值声明为,例如,let mut v=vec![1,2,3]
无法使用v.push(4)
操作,除非先借用v
。同样的限制也适用于字段,因此如果一个结构包含一个向量,那么如果不首先借用container.vec
(即使container
本身已经是一个引用),您就无法调用container.vec.push(元素)
为了防止这种噪音,C有两个字段访问操作符,
和->
,后者会自动取消引用。Rust的
故意继续进行,并执行方法调用工作所需的借用或取消引用。此处Rust的
运算符按您的意思执行并隐式借用变量。如果没有,使用非借用值会很烦人,因为一个值声明为,例如,let mut v=vec![1,2,3]
无法使用v.push(4)
操作,除非先借用v
。同样的限制也适用于字段,因此如果一个结构包含一个向量,那么如果不首先借用container.vec
(即使container
本身已经是一个引用),您就无法调用container.vec.push(元素)
为了防止这种噪音,C有两个字段访问操作符,
和->
,后者会自动取消引用。Rust的
有意地进行,并进行方法调用所需的借用或取消引用