borrow-checker 相关问题

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

两个可变借用向量

我正在学习用 Rust 编写的突破游戏教程,我有简单的数据结构表示屏幕上的球: 酒吧结构球 { 矩形:矩形, 速度:Vec2, } 它存储在 vec...

回答 3 投票 0

Vec 上的迭代器<Vec<i32>>:闭包可能比当前函数寿命更长,但它借用了

我正在编写一个函数来处理Vec>: fn process_grid(网格: Vec>) -> Vec { grid.iter() 。枚举() .flat_map(|(i, 行)...

回答 1 投票 0

为什么输出生命周期没有被省略为单个显式生命周期?

Rust 书籍提供了以下代码来说明需要显式生命周期的有效函数定义: fn 最长<'a>(x: &'a str, y: &'a str) -> &'a str { ...

回答 1 投票 0

具有生命周期和多个引用的 Rust 程序的糟糕设计

我对 Rust 语言非常陌生,所以请耐心等待。 我正在 Rust 中实现一个图形数据结构。对于图中的每个节点(还有边 - 从这个片段中省略),我有一个结构......

回答 1 投票 0

使用`RefCell<T>`时出现奇怪的编译时借用错误

我正在使用ratatui库来使用rustc 1.77.2制作一个程序。 我有以下代码: self.terminal().draw(|frame| self.render_frame(frame))?; 其中terminal()是结构体的getter

回答 1 投票 0

第二生命周期省略规则

Rust 书籍提供了以下代码来说明需要显式生命周期的有效函数定义: fn 最长<'a>(x: &'a str, y: &'a str) -> &'a str { ...

回答 1 投票 0

为什么这个不可变的引用字段持有可变的借用

使用以下代码,我对借用投诉感到惊讶 #[导出(调试)] 结构外部结构{ 一些东西:i32, } 实现外部结构{ fn non_mutable_read(&self) { p...

回答 1 投票 0

为什么这个可变借用超出了它的范围?

在我期望可变借用结束之后,我遇到了关于同时使用可变借用和不可变借用的令人困惑的错误。我对类似问题做了很多研究(1、2...

回答 2 投票 0

如何在匹配语句中初始化两个变量而不激怒借用检查器?

所以我有这个使用 rusqlite 的代码。而且效果很好。 pub 结构数据库 { conn:连接, } 实现数据库{ pub fn get(self: &Self, id: Option, name: Option<&am...

回答 1 投票 0

理解 Rust 在向量循环时的借用/引用

我正在努力寻找解决 Rust 中以下问题的方法。我希望能够循环一个(可变)向量,并且仍然能够循环嵌套在外部向量中的同一向量。 圣...

回答 1 投票 0

返回拥有的价值和参考价值

我有一个 Rust 函数,它有固定的输入类型,但我可以选择返回类型: fn foo(数据: &[u8]) 该函数需要对该切片进行更改,因此我创建了一个拥有的值,因此...

回答 1 投票 0

不能借用*self作为不可变的,但我找不到解决方法

所以我在第 17 行出现了上述错误,我明白,但没有找到好的解决方法: 结构节点{ node_type:节点类型 } 枚举节点类型{ 内部([盒子; 16]), 叶(Vec<...

回答 1 投票 0

Rust - 返回拥有的价值和对价值的引用

我有一个 Rust 函数,它有固定的输入类型,但我可以选择返回类型: fn foo(数据: &[u8]) 该函数需要对该切片进行更改,因此我创建了一个拥有的值,因此...

回答 1 投票 0

当已知可变值不可变时,借用一些可变值两次

我有一个类似于以下内容的构造,其中 Analysis 结构负责分析文件,Project 结构负责管理充当

回答 1 投票 0

为什么我的函数不删除借用的不可变引用?

我是 Rust 新手。我正在从官方 rust-lang 网站上的“The Rust 编程语言”一书中学习 Rust。在“切片类型”部分中有一个代码可以从字符串中查找第一个单词...

回答 1 投票 0

如何要求闭包在其范围结束时归还借用?

考虑以下函数体: fn update_acc(&mut self, acc_rub: &Vector3, _t: u64) -> () { 让 acc = Self::rub_to_frd(acc_rub); 如果 acc.norm() ...

回答 1 投票 0

为什么我的 impl 块中的类型参数不受约束?

希望这对 Rust 泛型向导来说是一个简单的问题。我正在寻找为任何可以借用作为我的 Offset 类型的东西编写一个 Display impl(例如 Offset、&Offset、Box 希望对于 Rust 泛型向导来说这是一个简单的问题。我希望为任何可以借用为我的 Display 类型的东西编写一个 Offset impl(例如 Offset、&Offset、Box<Offset> 等)。并提出以下建议: impl<O, C> Display for Modification<O> where O: Borrow<Offset<C>>, C: Display, 我认为造成这里问题的是我的 Offset 结构有一个类型参数,并且该参数需要实现 Display 才能实现整体 Modification<O> 的目的。 照原样,此代码会生成错误: error[E0207]: the type parameter `C` is not constrained by the impl trait, self type, or predicates --> crates/polychem/src/polymers/modification.rs:42:9 | 42 | impl<O, C> Display for Modification<O> | ^ unconstrained type parameter 从我的角度来看,它确实受到 impl 谓词的限制,而且效果很好: impl<O, C> Display for Modification<O> where O: Borrow<C>, C: Display, 因此,将通用结构放入混合中要么(1)揭示了 Rust 特征解决的局限性,要么(更有可能)(2)确实是不受约束的废话,但在某种程度上我目前不明白... 如果认为有帮助,很乐意提供更多信息和背景! 不受约束。 Rust 要求给定的特征对于一个类型最多实现一次。然而,这个 impl 块允许通过改变 Display 类型来无限数量地实现 Modification<O> 的 C。 因为 Borrow 是通用的,所以 O 表示的具体类型可以针对不同类型 Borrow<Offset<A>> 和 Borrow<Offset<B>> 实现 A 和 B。 impl 块应该选择哪一个?没有明确的方法来决定,因此这个 impl 是不允许的。 从我的角度来看,它确实受到 impl 谓词的限制,而且效果很好 不,这也失败了: error[E0207]: the type parameter `C` is not constrained by the impl trait, self type, or predicates --> src/lib.rs:6:9 | 6 | impl<O, C> Display for Modification<O> | ^ unconstrained type parameter

回答 1 投票 0

将空条目插入 HashMap 的可变借用问题

我正在尝试为一些 yml 配置文件(使用 serde)编写一个简单的解析器,其中涉及对许多参数内的自定义格式进行一些额外的解析。我的附加解析器基于简单的 Re...

回答 1 投票 0

Rust - 将空条目插入 HashMap 的可变借用问题

我正在尝试为一些 yml 配置文件(使用 serde)编写一个简单的解析器,其中涉及对许多参数内的自定义格式进行一些额外的解析。我的附加解析器基于简单的 Re...

回答 1 投票 0

匹配部分移动的枚举 Rust

我遇到了一个问题,我通过根据枚举的匹配来移动值来消耗枚举的内容。完成此操作后,我想返回该计算值以及 ano...

回答 1 投票 0

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