0
을 가지고 나는 녹에 lifetime
복잡 장난되었고, 나는 다음과 같은 코드를 작성 결국 :이해 심판 구조체와 그것의 구성원은 서로 다른 수명
trait Boss<'a, 'c> {
fn work(&self, &'a i32) -> &'c i32;
}
struct Human<'c> {
i:&'c i32
}
impl<'a, 'b, 'c> Boss<'a, 'c> for &'b Human <'c> {
fn work(&self, v:&'a i32) -> &'c i32 {
&self.i
}
}
fn main() {
let h = Human {i:&1};
}
이 코드는 컴파일을하지만, 나는 확실하지 않다 왜. 내가 이해하는 바와 같이, &Human
의 수명은 'b
이며, 참조 자 i
은 struct Human
입니다. 'c
입니다. 왜 컴파일러는 'b
이 'c
보다 오랫동안 남아있을 수 있다고 불평하지 않습니까?