私のエラーとその修正方法を教えてください。
fn get_m() -> Vec<i8> {
vec![1, 2, 3]
}
fn main() {
let mut vals = get_m().iter().peekable();
println!("Saw a {:?}", vals.peek());
}
(遊び場)
コンパイラのエラーは、「let
バインディングの使用を検討する」ことを示唆していますが、私はすでに次のようになっています。
error[E0597]: borrowed value does not live long enough
--> src/main.rs:6:45
|
6 | let mut vals = get_m().iter().peekable();
| ------- ^ temporary value dropped here while still borrowed
| |
| temporary value created here
7 | println!("Saw a {:?}", vals.peek());
8 | }
| - temporary value needs to live until here
|
= note: consider using a `let` binding to increase its lifetime
これは明らかに初心者の質問です。この時点で十分な Rust を作成したので、借用チェッカーを処理できると思っていましたが、そうではないようです。
この質問は「let」バインディングを使用して値の寿命を延ばすに似ていますが、式を複数のステートメントに分割することは含まれていないため、問題は同じではないと思います。