gpt4 book ai didi

rust - 理解 rust Option as_mut 方法

转载 作者:行者123 更新时间:2023-12-03 11:34:24 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the relation between auto-dereferencing and deref coercion?

(1 个回答)


2年前关闭。




给定一个 rust 选项:

let mut x = Some(3);

为什么可以直接调用 x.as_mut() ?正如我从 the doc 中看到的那样, as_mut定义为:

pub fn as_mut(&mut self) -> Option<&mut T> Converts from &mut Option to Option<&mut T>.



它期望第一个参数是 &mut self ,即 &mut Option<T> .我不应该使用 (&mut x).as_mut()反而?

最佳答案

这里是 Rust 的 .运算符按照您的意思执行并隐式借用变量。如果没有,使用非借用值会很烦人,因为一个值声明为例如let mut v = vec![1, 2, 3]无法使用 v.push(4) 进行操作无需先借v .同样的限制也适用于字段,因此如果结构包含向量,您将无法调用 container.vec.push(element)无需先借container.vec (即使 container 本身已经是一个引用)。
为了防止这种噪音,C 有两个用于字段访问的运算符,.-> ,后者自动取消引用。 rust 的 .故意继续并执行方法调用所需的借用或取消引用。

关于rust - 理解 rust Option as_mut 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com