R
Size: a a a
R
R
{
let foo: &'static mut Foo = Box::leak(Box::new(Foo));
unsafe { Box::from_raw(foo) }
}
R
'static
ссылка на объект живущий в скоупеp
R
R
&'a T
не может жить дольше 'a
p
&'a T
не может жить дольше 'a
p
R
T
живет не меньше чем 'a
R
R
'a
R
fn foo(rr: &'static &'static Foo) {}
fn bar(r: &'static Foo) {
foo(&r); // error - can't borrow `r` for `'static` as its lifetime ends when `bar` scope ends
}
R
r
это ссылка на статический объектR
R
p
T
живет не меньше чем 'a
R
R
&foo
- процесс заимствованияR
&'a Foo
- ссылка, валидная в течении 'a
, то есть она не может жить дольше этого.'a
соответственноp
&'a Foo
- ссылка, валидная в течении 'a
, то есть она не может жить дольше этого.'a
соответственно