Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 将防锈选项理解为一种方法_Rust_Optional - Fatal编程技术网

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的
有意地进行,并进行方法调用所需的借用或取消引用