borrow-checker 相关问题

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

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

所以我有这个使用 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

可以采用什么结构来避免使用 RefCell?

我在 Rust 中创建了一些代码,应该允许我设置递归端口、具有源的端口、可能具有源的端口等。但是,由于借用问题,这是我实现此 str 的唯一方法...

回答 1 投票 0

在 Rust 中:可以采用什么结构来避免使用 RefCell?

我在 Rust 中创建了一些代码,应该允许我设置递归端口、具有源的端口、可能具有源的端口等。但是,由于借用问题,这是我实现此 str 的唯一方法...

回答 1 投票 0

即使有别名,也可以保存可变引用以供以后使用

我正在尝试实现类似拉链的东西,但利用可变引用来避免在浏览数据结构时必须解构和重建数据结构。我有示例 c...

回答 1 投票 0

在 Rust 中调用循环中的函数时,无法一次借用可变多次错误

我正在尝试使用我在 Rust 中创建的函数来提出一系列选择,供用户从中进行选择,然后从该选择中执行关联的函数。然而,它给了我一个比较...

回答 1 投票 0

在 Rust 中强制转换可变引用 -> 不可变引用 -> 可变引用是否有效

所以我知道将不可变引用转换为可变引用是UB。然而,如果不可变引用是从可变引用派生而来的,那么它是否仍然被认为是 UB,就像技术上的内存一样

回答 1 投票 0

如何最好地并行化修改同一 Rust 向量的多个切片的代码?

假设我们想要将向量的每个切片中的每个元素加倍(就地),其中切片由一系列对(开始、结束)位置定义。下面的代码表达了int...

回答 2 投票 0

为什么 Rust 的借用检查器在使用从方法返回的迭代器时会抱怨,而直接使用 Vec 的迭代器时却不会?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ba9255e504174afa0f31f20467caf0a9 考虑以下 Rust 程序 结构体 Foo { 酒吧:Vec, 巴...

回答 1 投票 0

特征的生命周期作为返回值

我想通过返回 impl 特征(如 create_trait() 中那样)来隐藏从 create 函数返回的实际实现。这怎么可能做到呢? 特质名称<'a> { fn 名字...

回答 3 投票 0

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