녹 발생 수명 문제가 발생하여 문제가 발생했습니다. 아래에 많은 조정을 시도했지만 새로운 오류를 계속 도입합니다. Vector 객체를 반환하기 위해 인덱스를 원합니다.녹 수명 - 변수가 충분히 오래 살지 못함 오류
struct Matrix<T> {
num_rows: i32,
num_cols: i32,
data: Vec<T>
}
struct Vector<T> {
data: Vec<T>
}
그리고
impl<T: Clone> Index<usize> for Matrix<T> {
type Output = Vector<T>;
fn index(&self, i: usize) -> &Vector<T> {
let index = i as i32;
let start = (index * &self.num_cols) as usize;
let end = (((index + 1) * &self.num_cols) - 1) as usize;
let data_slice = &self.data[start..end];
let data = data_slice.to_vec();
let vector_temp = Vector::<T>::new(data);
return &vector_temp;
}
}
을 할 노력하고있어하지만 난 아직 완전히 녹 수명을 grokked하지 않은
error: `vector_temp` does not live long enough
--> src\main.rs:45:17
|
45 | return &vector_temp;
| ^^^^^^^^^^^ does not live long enough
46 | }
| - borrowed value only lives until here
|
note: borrowed value must be valid for the anonymous lifetime #1 defined on the block at 38:44...
--> src\main.rs:38:45
|
38 | fn index(&self, i: usize) -> &Vector<T> {
| ^
error: aborting due to previous error
error: Could not compile `hello_world`.
받고 있어요 :
나는이 누군가가 나를 도울 수 있기를 바랬습니다. 감사!