我有一个非常简单的方法.第一个参数采用向量组件("A",5,0),我将它与另一个向量的每个元素进行比较,看它们是否具有相同的(_,5,_),然后打印出找到的元素的字符串.
比较("A",5,0)和("Q",5,2)应打印出Q.
fn is_same_space(x: &str, y1: i32, p: i32, vector: &Vec<(&str, i32, i32)>) -> (&str) {
let mut foundString = "";
for i in 0..vector.len() {
if y1 == vector[i].1 {
foundString = vector[i].0;
}
}
foundString
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误
error[E0106]: missing lifetime specifier
--> src/main.rs:1:80
|
1 | fn is_same_space(x: &str, y1: i32, p: i32, vector: &Vec<(&str, i32, i32)>) -> (&str) {
| ^ expected lifetime parameter
|
= help: this function's return type contains a borrowed value, but the …Run Code Online (Sandbox Code Playgroud) 我的程序很恐慌,所以我按照它的建议运行RUST_BACKTRACE=1,我得到了这个(只是一个小片段).
1: 0x800c05b5 - std::sys::imp::backtrace::tracing::imp::write::hf33ae72d0baa11ed
at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
2: 0x800c22ed - std::panicking::default_hook::{{closure}}::h59672b733cc6a455
at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:351
Run Code Online (Sandbox Code Playgroud)
如果程序发生恐慌,它会停止整个程序,那么我在哪里可以弄清楚它在恐慌的哪一行?
这条线告诉我第42行和第351行有问题吗?
整个回溯都在这张图片上,我觉得将它复制并粘贴在这里会很麻烦.
我从未听说过堆栈跟踪或后跟踪.我正在编译警告,但我不知道调试符号是什么.