私は非常に簡単な方法を持っています。最初の引数はベクトル成分( "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
}
を比較
はしかし、私は
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 signature does not say whether it is borrowed from `x` or one of `vector`'s 2 elided lifetimes
ポイントは、あなたが誰か* *が所有しています '&str'を返していることです。コンパイラは誰が誰であるかを知りたいので、 '&str'が指し示すメモリがどれくらい長く生きるかが分かります。コンパイラに "'&str'を返すように伝える必要があります。渡される参照がある限り、 " – turbulencetoo