ownership 相关问题

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

用于推送到其成员被引用的向量的 Rust 所有权

TL;DR:我想要一个不可变元素的向量,它允许对其成员进行短暂的不可变引用,同时能够推送它。 我正在制作一个用于精确算术的板条箱,用作 d...

回答 1 投票 0

是否可以在 Rust 中返回一个包含可变数据引用的结构?

我正在制作一些伪游戏,想要创建一个函数来返回通用敌人。由于某种原因,它不允许我包含 [0, 0] 的使用。 这是代码: 构造敌人<'a&g...

回答 1 投票 0

传递 Rust 的所有权

我目前正在学习 Rust 中的所有权和借用,以及如何在没有借用的情况下无法使用同一个变量执行函数两次,就像本示例中无法编译的那样 ...

回答 1 投票 0

不能借用`x`作为不可变的,因为它也被借用为可变的

我需要迭代并修改 for 循环中的元素,但我还必须将 Vec 传递到修改它的函数中。有没有更好的方法用 Rust 编写这个? 最低可重现代码: fn ...

回答 1 投票 0

如何将闭包移动到结构体字段?

我有这个不起作用的 Rust 代码片段: 使用 std::cmp::Ordering; 结构可排序 { 缓冲区:Vec, 比较:盒子订购>, } 暗示<...

回答 1 投票 0

致命:credentials.cc(127) 检查失败: 。 :权限被拒绝(13)跟踪/断点陷阱(核心转储)

我的操作系统规格如下: pegasus@pegasus:~$ uname -r 5.19.0-1007-nvidia-低延迟 pegasus@pegasus:~$ uname -a Linux pegasus 5.19.0-1007-nvidia-lowlatency #7-Ubuntu SMP PREEMPT_DYNAMIC...

回答 2 投票 0

取得本地对象字段的所有权

我创建了一个包含两个文件和一个枚举的任务结构。对于这个结构,我想实现一种将输入文件读取并解码为 WAV(音频)的方法。为此,我使用 wav 板条箱。这个

回答 1 投票 0

如何在递归数据结构中移动所有权时改变引用?

我尝试实现 ConsList 数据结构,它来自 Lisp 或 Haskell 等函数范式语言。这里有一些片段: 使用 ConsList::*; 枚举 ConsList { 空的, ...

回答 1 投票 0

此 Rust 代码会导致未定义的行为吗?

到目前为止,我只用 Rust 编写了安全代码。现在我正在从头开始编写一个 DBMS,以便深入理解该语言。由于性能是这里的重中之重,所以我尝试编写大部分 c...

回答 1 投票 0

这个用于从未排序链表中删除重复项的 Rust 代码在 else 分支的低级别上执行什么操作?

我有一个链接列表: pub 结构节点 { 值:T, 下一个: 选项>> } pub 结构 LinkedList { 头部:选项>> } ...

回答 1 投票 0

无法使用 str.lines() 函数为每个循环绑定生命周期

我是 Rust 新手,我正在构建 grep 命令的实现来学习这种语言。 我正在尝试创建一个函数来以不区分大小写的方式匹配搜索查询,但我有 tr...

回答 1 投票 0

Rust 所有权问题

我想用 Rust 实现单链表的概念。 但是,当我实现push_front函数时出现问题。 错误消息如下。 无法作为枚举变体移出 self.head 有些...

回答 1 投票 0

使用构建器模式时,我应该按值还是可变引用获取“self”?

到目前为止,我在官方 Rust 代码和其他包中看到了两种构建器模式: 实现数据构建器{ pub fn new() -> DataBuilder { ... } pub fn arg1(&mut self, arg1: Arg1Type) -> &am...

回答 1 投票 0

为什么 (&mut iter).take(n) 不取得 iter 的所有权?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=27451eb0a114417afcea5b6c53a92ff2 在此代码中: fn 主() { 让 my_vec = vec![1,2,3,4,5,6,7,8]; 让穆特帕...

回答 1 投票 0

std::shared_ptr 由一个类拥有并由另一个类初始化

我有一个类,比如说A。类A有一个类型的成员变量: std::shared_ptr m_dataMemberInA 我没有初始化 A 类中的成员。在 B 类中我也有一个 std::shared_...

回答 1 投票 0

Rust:为什么我会收到错误 [E0507]:无法移出共享引用后面的 `files.input_file`

我已将现实生活中的 Rust 代码缩小为以下内容: 使用 std::fs::File; 使用 std::io::{BufRead, BufReader}; 结构文件处理程序{ 输入文件:文件, } 实现文件处理程序{ fn 设置(

回答 2 投票 0

为什么我可以从 Vec 而不是从数组创建值的迭代器? [重复]

下面的代码可以编译,但是如果传递给函数 f 的参数从字符串向量更改为字符串数组,则它不会编译。我试图理解为什么。我认为这有什么关系

回答 1 投票 0

解引用运算符在 Rust 中如何工作?

// https://cses.fi/problemset/task/1621 使用 std::collections::HashSet; fn 主() { 让 mut inp: String = String::new(); std::io::stdin() .read_line(&am...

回答 1 投票 0

解除引用运算符在 Rust 中如何工作?

// https://cses.fi/problemset/task/1621 使用 std::collections::HashSet; fn 主() { 让 mut inp: String = String::new(); std::io::stdin() .read_line(&am...

回答 1 投票 0

如果主函数结束时整个过程也结束,那么闭包怎么会比主函数活得更久呢?

我有以下代码: 使用 std:: 线程; fn 主() { 让 x: &'static mut [i32; 3] = Box::leak(Box::new([1, 2, 3])); 线程::spawn(|| dbg!(&x)); } 当我编译它时,出现以下错误: ...

回答 1 投票 0

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