borrow-checker 相关问题

借用检查器是指Rust编程语言使用的所有权概念的编译时分析。此标记应用于相关问题和错误。

HashMap Entry API的Lifetimeborrow问题 [重复]

我刚刚开始使用rust做我的第一个小项目,但我终究想不通如何用Rust让下面的代码成功编译。第一步是挣扎在 ...

回答 1 投票 1

分离带寿命参数的性状的可突变借代。

我在尝试定义和使用一个带有方法的特质时,遇到了一个问题,这个方法可以借用self mutably。一些上下文,可能会让它变得更容易。我正在做一个玩具编译器 我试图解决的问题是...

回答 1 投票 1

地图从Rc<RefCell<T>>到Ref<'_,U&gt。

我有以下结构: struct Inner; enum State { A(Inner), B, } struct Owner { state: Rc >, } 我想提供以下接口:......。

回答 1 投票 1

当拆包时,不能从共享引用后面的值中移出。

这是我试图执行的代码: fn my_fn(arg1: &Option)。 &gt;) -> i32 { if arg1.is_none() { return 0; } let integer = arg1.unwrap(); *integer }。...

回答 1 投票 14

HashMap的迭代和借值[关闭]。

我想在HashMap中突变一个结构,然后在其上调用一个不可变的方法。由于这些事情是串行发生的,所以似乎借贷检查器应该允许这样做。然而,我得到的错误是:error[...

回答 1 投票 -1


对具有可变引用的app_state进行递归更新

我正在尝试构建一个解析器,该解析器可以从根目录(由用户传递)开始递归搜索文件系统,并解析其中的文件/目录。我有一个目录结构...

回答 1 投票 1

带有手动删除的引用包装的锈迹寿命问题

我正在尝试用自定义放置逻辑在Rust中编写一个包装可变引用的类,但是无论我做什么,我都无法确定生存期,并且编译器错误消息也没有.. 。

回答 1 投票 1

不带锈的通行箱参考

背景:我正在编写一个生锈的RDBMS。db.catalog维护一个从table_id到表的哈希映射:pub struct Catalog {table_id_table_map:HashMap >,}当...

回答 1 投票 0

如何确保自身在不借入的情况下超过返回值

假设有这样的情况:特质B {}结构BB {}为BB} B的隐含B {}结构A {}隐含的A {//这样,A可以在B之前被删除// >框 ... ...>

回答 1 投票 1

[使用方法调用的结果时多次可变借用

在此简化的代码中,我有两个重要的结构:所有者获取对象的所有权,将其添加到Vec,并返回对该对象的引用; RefKeeper仅保存对Vec中对象的引用。所有者...

回答 1 投票 0

如何在Rust中修改借用结构的字段?

我有一个&mut对结构的引用。我想重新分配所引用结构的字段,但是我只能得到无法分配给current_node.parameter的信息,因为它是借来的。一个最小的例子可以是...

回答 1 投票 -1

为什么可变的自我借贷变成不可变的?

此代码使可怕的借阅检查器失败(游乐场):struct Data {a:i32,b:i32,c:i32,} impl Data {fn reference_to_a(&mut self)->&i32 {self.c = 1; ...

回答 2 投票 12

迭代遍历过滤器和继续条件的当量

为了使我的代码更清晰易懂,我将几个数据结构提取到一个单独的结构中:struct S {x:Vec ,y:HashSet ,z:Vec ,}仅存在...

回答 1 投票 0

从不可变数组获取可变引用

我不知道标题是否正确,但这是问题所在:让mut行:Vec > = vec![];让row1 =&mut ** rows.get(0).unwrap();我想存储可变的...

回答 1 投票 -1

为什么将函数移至默认特征方法会导致借入错误?

给出包含元素集合的struct Foo:#[derive(Debug)] struct Foo {bar:Vec ,}我编写了一个可变的视图对象,旨在封装Foo的一部分:#[...] >

回答 2 投票 1

为类型实参表示确切的生存期(较高约束)

在Rust中,T:'据我所知,意思是“任何提供的类型参数T的所有生存期都必须长于'a”。 pub struct A {字段:&'a T}这是您自然会得到的...

回答 1 投票 3

基于同一Hashmap中的另一个值插入HashMap

我正在尝试基于同一HashMap中的另一个值将值插入HashMap中,如下所示:使用std :: collections :: HashMap; fn main(){let mut some_map = HashMap :: new(); some_map.insert(...

回答 1 投票 0

HashMap Entry API的生命周期/借款问题[重复]

我不知道如何使以下代码成功编译。第一步是努力克服生命周期注释,但是,我认为它终于解决了。下一步是...

回答 1 投票 0

生锈的链表不能借用上一个和下一个可变元素(只需要不可变的引用)

目前,我正在研究一个小应用程序来模拟(多链)摆。为了保存它们,我决定使用std :: collections :: LinkedList。显示并静态移动它们是...

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.