ownership 相关问题

所有权是Rust的核心概念。所有权系统是编译器在编译时检查以管理内存的一组规则。

Entry::Occupied.get() 返回引用当前函数拥有的数据的值,即使 hashmap 应该拥有所有权

我的目标是实现 Rust 书第 13.1 章中缓存器结构的建议改进,即创建一个结构体,该结构体采用函数并使用记忆化来减少...

回答 1 投票 0

rust 所有权和 liftetime 问题

使用 scraper::html::Select; fn get_doc(url: String) -> scraper::Html { 让响应 = reqwest::blocking::get(url); 让 html_content = response.unwrap().text().unwrap(); 刮刀::Html::

回答 1 投票 0

如何避免显式克隆移至闭包的变量?

有没有办法避免创建临时变量,一个变量在多个闭包中被捕获: 闭包中的 move 关键字是必需的 使用任何其他容器代替 Rc 都可以...

回答 1 投票 0

Rust 中删除值的不同方法

我试图理解 Rust 如何处理不同符号中的值下降。 考虑以下代码: let s = String::from("你好,Rust!"); 掉落; //方法1 (|_| ())(...

回答 1 投票 0

发生移动是因为树的类型未实现复制特征,值移至此处

我知道这是一个多余的问题,但似乎我无法从中得到一些普遍性。所以我尝试使用其他地方的一些代码编写一个简单的二叉树(起初我使用......

回答 1 投票 0

当所有权转移发生时内存中会发生什么

我很难完全理解所有权转移过程中内存部分会发生什么。 如果一个值由一个变量拥有并转移到另一个变量,那么原始 va 中的内存会发生什么...

回答 1 投票 0

如何确保 Rust 闭包实现 `FnMut` 特性?

我正在编写一个简单的 Rust 程序,它将足够响亮的音频输入传输到输出设备。 我通过使用ringbuf以一种深受启发的方式获得了输入和输出回调来共享状态......

回答 1 投票 0

Rust 变量如何在闭包中可变地使用而不被永久移动?

我正在编写一个简单的 Rust 程序,它将足够响亮的音频输入传输到输出设备。 我通过使用ringbuf以一种深受启发的方式获得了输入和输出回调来共享状态......

回答 1 投票 0

c++ 将所有权传递给复合类

我有一个对象(我们称之为 A),我想存储另一个对象(假设它的类型为 B,称为 m),该对象将从创建 A 的函数传递。 B 的创建通过

回答 1 投票 0

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

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

回答 1 投票 0

Rust 无法确定借用值的类型

类型 NodePointer = Option>>>; #[导出(调试)] 结构节点 { 值:T, 下一个:节点指针 } pub 结构 LinkedList type NodePointer<T> = Option<Rc<RefCell<Node<T>>>>; #[derive(Debug)] struct Node<T> { val: T, next: NodePointer<T> } pub struct LinkedList<T> { head: NodePointer<T>, tail: NodePointer<T>, length: u32 } impl <T: Display> Display for LinkedList<T> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut current = self.head.clone(); while let Some(node_rc) = current { let node = node_rc.borrow_mut(); write!(f, "{} ", node.val)?; current = node.next.clone(); } Ok(()) } } 我试图制作一个 LinkedList 来学习 Rust,但在这里我陷入了一个相当奇怪的错误。在 fmt 函数中使用 node_rc.borrow() 给我 consider giving `node` an explicit type, where the type for type parameter `Borrowed` is specified: `: &Borrowed` 但是使用 borrow_mut 而不是 borrow 不会导致同样的错误,为什么? 我找到了一个解决方案,这是因为 rust-analyzer 正在从 borrow::Borrow 而不是 cell::RefCell 导入借用。这不是与 Rust 工作方式相关的错误。只是错误的导入。删除使用 std::borrow::Borrow 解决了这个问题。

回答 1 投票 0

如何用另一个 HashSet<String> 扩展一个 HashSet<String>?

当我尝试用另一个 HashSet 扩展一个 HashSet 时: 使用 std::collections::HashSet; 让 mut a = HashSet::new(); a.insert("foo".to_owned()); 让 mut b = HashSet...

回答 1 投票 0

在 Rust 中启动一个带有过期对象循环的永久线程,删除这些对象

我正在编写一个服务,我想永远运行一个循环来检查一些过期的对象,如果太旧则将其删除。 pub 结构体 { 已过期:NaiveDateTime, } pub 结构维护者 { ...

回答 1 投票 0

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

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

回答 1 投票 0

为什么传递给map()的闭包不带引用,而传递给filter()的闭包带引用?

传递给map()的闭包不接受引用,而传递给filter()的闭包在Rust中接受引用。大多数迭代器适配器都会引用。 map() 这样做有什么原因吗...

回答 2 投票 0

如何使用通道在线程之间传递 &OsStr 路径?

我正在编写一个 Rust 程序,它会生成一个线程数组,每个线程都给出一个目录的路径。每个线程使用 walkdir crate 迭代上述路径,并通过

回答 1 投票 0

rusdlings move_semantics2 为什么传递引用不起作用?

我正在通过做restlings练习来尝试Rust,这是一个非常好的开始方法,但有一些我不明白的东西。 练习:move_semantics2 我明白这是为了

回答 3 投票 0

如何正确使用rsync来保留所有文件权限和所有权?

我正在尝试使用 rsync 将某些数据从一台计算机(PopOS!21.04)备份到另一台计算机(Rocky 8.4)。但无论我在 rsync 中使用哪个标志,文件权限和所有权似乎永远不会被保存...

回答 2 投票 0

Reqwest Cookies 的 impl 迭代器中项目的生命周期

问题的标题可能没有抓住这个问题的本质,我很乐意进行编辑。 我刚刚开始用 Rust 写作,正在编写一个小程序来学习 Rust 和 Reqwest 包。 ...

回答 1 投票 0

Microsoft Fabric - 更改数据管道所有者

我们的组织使用 MS Fabric 来创建数据管道。我的前任创建了一个对于日常数据处理至关重要的管道,但他已经离开了该组织。一切都倒塌了

回答 1 投票 0

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