相关疑难解决方法(0)

如何在不将其传递给函数的情况下重新导入可变引用?

我发现了一个案例,手动内联函数会改变借用检查器处理它的方式,使其不再编译.据推测,它依赖于函数签名中的信息.如何在内联版本中提供此信息?

我认为它是如何运作的

让我们'a'b与寿命'a比较短'b(可写'b: 'a).

假设我有一个p: &'b mut f32.我可以p简单地借(获得&mut p)来获得q: &'a mut &'b mut f32.

  1. 我是否正确地理解了&'a mut &'b mut f32相当于&'a mut &'a mut f32因为'b: 'a

然后,我可以取消引用q(with *q)获取r: &'a mut f32.我可以写入f32via r(with *r = something),我可以稍后(在生命之外'a)通过p(with *p)读回值.

通过函数调用

以下是一些我认为使用上述顺序的工作代码:

fn reborrow<'a, 'b: 'a>(q: &'a mut …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker

7
推荐指数
2
解决办法
713
查看次数

标签 统计

borrow-checker ×1

rust ×1