11得票1回答
如何从Rc<RefCell<A>>中获取&A引用?

我有一个设计问题,希望用安全的Rust解决,但我还没有找到可行的解决方案。我不能使用RefCell,因为你只能得到Ref/RefMut而不是数据的&amp;引用。 这里是一个简化的示例,已删除不相关的字段/方法 use std::cell::RefCell; use std::rc::Rc...

17得票2回答
如何决定函数输入参数是否应该是引用?

在编写函数时,如何决定使输入参数成为引用参数还是传值参数? 例如,我应该这样做吗? fn foo(val: Bar) -&gt; bool { check(val) } // version 1 或者使用引用参数来替代? fn foo(val: &amp;Bar) -&gt; boo...

16得票1回答
无法在 Rc 中作为可变借用。

首先,我是 Rust 的新手 :-) 问题: 我想创建一个名为 RestServer 的模块,包含添加路由和启动服务器的方法(使用 actix-web)。 struct Route { url: String, request: String, handler: Box&...

13得票1回答
什么情况下不需要使用借用API?

Rust有所有权和借用的概念。如果一个函数不将其参数作为引用进行借用,那么传递给该函数的参数会被移动,并在超出范围后被回收。 考虑这个函数:fn build_user(email: String, username: String) -&gt; User { User { ...

7得票1回答
无法返回一个字符串切片的向量:借用的值没有足够长的生命周期

我是Rust的新手,borrow checker 让我有些困惑。我不明白为什么这段代码无法编译。如果这个问题已经被回答过了,那么很抱歉,但我在其他问题中找不到解决方案。 我知道这与将本地字符串作为切片返回(&amp;str)相似,但在那种情况下,只返回了一个字符串,对我来说不足以理解我正在尝...

9得票2回答
如何检查两个引用变量是否借用了同一个对象?

我有一个结构体,所有内容都是只读引用,例如: struct Pt { x : f32, y : f32, } struct Tr&lt;'a&gt; { a : &amp;'a Pt } 我想为Tr实现impl Eq,以测试底层a引用是否完全相同的Pt: let trBase1 = P...

11得票3回答
如何在处理数据流时高效地构建向量和该向量的索引?

我有一个结构体 Foo:struct Foo { v: String, // Other data not important for the question } 我想处理一个数据流并将结果保存到Vec&lt;Foo&gt;中,并在字段Foo::v上为这个Vec&lt;Foo...

27得票4回答
在迭代递归结构时无法获取可变引用:同一时间无法作为可变借用多次。

我试图迭代地导航递归数据结构,以便在特定位置插入元素。据我所知,这意味着获取对该结构根部的可变引用,并将其逐步替换为对其后继者的引用:type Link = Option&lt;Box&lt;Node&gt;&gt;; struct Node { next: Link } stru...

7得票2回答
在循环中,借用值的生命周期不够长

我正在尝试解析一个文件,并从函数返回Vec&lt;Vec&lt;&amp;str&gt;&gt;。但是在文件读取循环中将内容push到向量时,出现了借用值错误。 use std::io::{self, BufReader, prelude::*}; use std::fs::File; f...

41得票1回答
价值存在时间不够长

我不完全了解lifetime,但我认为b的lifetime将会在self之前结束。 那么,如何编辑这段代码?我需要复制内存中的某些内容吗?如果我创建一个新的实例,它的lifetime必须符合这种情况。pub struct Formater { layout: &amp;'static...