borrow-checker 相关问题

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

使用结构体中的哈希集引用返回对哈希集条目的引用

我目前正在用 Rust 编写一个解析器,我需要能够实习字符串文字和变量标识符。解析器应该借用一个 HashSet 来添加值,并返回带有

回答 1 投票 0

如何将模拟实例注入 Rust 特征,同时保留该模拟的引用

我制作了这个名为 Oracle 的 Rust 结构,它可以回答任何问题 /// Oracle是一个能够回答问题的智慧实体 pub 结构 Oracle { 来源:Rc, } 实现 Oracle {...

回答 1 投票 0

赋值要求 `'1` 必须比 `'a` 活得长

我正在创建一个具有两个字段的 struct App:一个字段包含一个拥有的窗口(此处简化为 u32),另一个字段包含一个最终应引用上面窗口的结构。然而,

回答 1 投票 0

为什么 |模式匹配中的(管道)会导致“移动后使用的值”?

我对管道的语义有点困惑 |匹配臂中的操作员。具体来说,我有一些代码,其中使用管道似乎会导致移动后使用借用检查器错误。 这是一分钟...

回答 1 投票 0

为什么 | (管道)在 Rust 模式匹配中会导致“移动后使用的值”?

编辑:事实上这是我的 IDE 的问题,而不是我的代码的问题。具体来说,这是 RustRover 的借用检查器中的一个错误(在 2024.1 和 2024.2 EAP 中)。 误报: 在 Rust 中,我有点困惑

回答 1 投票 0

for 循环内的 Rust 闭包定义

我遇到了与这个问题中提到的相同的问题。简而言之,他的问题是借用一个可变的对象,因为它在闭包内使用,而借用它作为不可变的对象,因为它在闭包内使用......

回答 1 投票 0

将枚举转换为 Rust 中的另一个枚举,同时有选择地移动包含的值

我有两个这样的枚举: 枚举 E1 { A { val: SomeValue1 }, B(某个值2), C(某些值3), } 枚举 E2 { 一个, B(某个值2), C(某些值3), D、 乙 } 这里 SomeValueX 类型并不意味着...

回答 1 投票 0

Rust 中异步闭包的生命周期问题

我想将柴油异步板条箱中的数据库事务包装到一个通用连接对象中,该对象本身提供异步事务方法。不幸的是,无论我尝试借用检查器

回答 1 投票 0

为什么我不能移出对之后不再使用的拥有的 vec 的共享引用?

我想知道如果向量被拥有并且之后不被使用,为什么不可能移出对向量的共享引用? 我有一些代码看起来像这样: #[导出(调试)] 结构项目(

回答 1 投票 0

在 Rust 中管理生命周期:如何确保变量“足够长”存在?

我正在尝试使用 wgpu 和 winit 用 Rust 编写一个渲染引擎库,并且一直在遵循“学习 WGPU”教程。不幸的是,一些不安全的代码(create_surface)在......

回答 1 投票 0

使用`&str`索引`HashMap<&String, V>`

使用 &str 索引 HashMap<&String, V> 的正确方法是什么? Rust 报告 &String 不是索引所需的 Borrow。 (这似乎有点傻...

回答 2 投票 0

使用 `&str` 从 `HashMap<&String, V>` 建立索引

使用 &str 索引 HashMap<&String, V> 的正确方法是什么? Rust 报告 &String 不是索引所需的 Borrow。 (这似乎有点傻...

回答 1 投票 0

为什么通过特征对象进行突变会失败,但通过函数指针进行突变却可以?

我有一个 Rust 程序,其中包含两个版本的结构及其方法实现。第一个版本使用函数指针,而第二个版本使用装箱特征对象。这是代码: 酒吧街...

回答 1 投票 0

Optional<String>的最佳借用访问器模式是什么?

这个 rust-analyzer 风格指南推荐了这样的访问器: 结构人{ // 不变式:永远不会为空 名字:字符串, middle_name:选项 } 隐含人{

回答 1 投票 0

Rust 中可选<String>的最佳借用访问器模式是什么?

这个 rust-analyzer 风格指南推荐了这样的访问器: 结构人{ // 不变式:永远不会为空 名字:字符串, middle_name:选项 } 隐含人{

回答 1 投票 0

如何解决闭包中生成的“无法返回引用临时值的值”?

我有一个结构,Thing 实现 Clone 但不实现 Copy,它有两种方法,一种用于工作,另一种用于从现有的“父”Thing 派生“子”Thing。不是...

回答 1 投票 0

Rust 认为参数是在 `impl Trait` 返回值中借用的,并抱怨“借用的值寿命不够长”

简化代码: 结构体A(/**/); 特质 Foo {} 特质栏{ fn 栏(a: &A) -> impl Foo; fn baz() -> impl Foo { 让 a = A(); 自我::酒吧(&a) } } 错误: 错误...

回答 1 投票 0

Rust 中如何组织阻塞方法和带有 mutable &self 的方法?

let mut peer_poller = Arc::new(Mutex::new(PeerPoller::new()?)); 让 mut peer_poller_clone = peer_poller.clone(); 线程::生成(移动 || { 环形 { 让 p = rx.recv().unwrap(); 匹配

回答 1 投票 0

我怎样才能拥有某物的所有权并调用它的方法来移动该对象?

我有以下代码,该代码无法编译,因为调用“self.client.dispose()”会移动对象“client”,因为 dispose 具有此签名:dispose(self)。到底有没有...

回答 1 投票 0

可变引用是否意味着 Rust 中的所有权损失?

Rustlings 的这个练习经过更正后得出: fn move_semantics4() { 让 mut x = Vec::new(); 让 y = &mut x; y.推(42); 令 z = &mut x; ...

回答 1 投票 0

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