8得票3回答
为什么Rust忽略了对&str的生命周期检查?

fn main() { let strA = "a"; let result; { let strB = "abc"; result = longest(strA, strB); // Will return strB } ...

16得票3回答
在Rust中解引用字符串和HashMap

我正在尝试理解Rust中HashMap的工作原理,我想出了这个例子。 use std::collections::HashMap; fn main() { let mut roman2number: HashMap<&'static str, i32> = Ha...

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

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

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

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

22得票4回答
无法推断返回引用的闭包的适当生命周期

考虑以下代码:fn foo<'a, T: 'a>(t: T) -> Box<Fn() -> &'a T + 'a> { Box::new(move || &t) } 我期望的结果: 类型 T 的生命周期为 'a。 值 t 的寿命与 ...

8得票1回答
如何复制一个 &[u8] 切片?

如何复制 &[u8] 切片的内容? 我正在尝试编写一个函数,它以缓冲区作为输入,将每个字节与给定的密钥进行异或操作,并返回最终结果。 我不希望它破坏输入缓冲区。 pub fn xor_buffer(buffer_in: &[u8], key: char) -> &a...

9得票2回答
在Rust中如何以可变和不可变的方式借用?

我已经阅读了这些文档:https://doc.rust-lang.org/rust-by-example/scope/borrow/mut.html 我也读过这个问题:(Cannot borrow immutable borrowed content as mutable) 这些文档帮...

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

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

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

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