aşağıdaki kodu derlerken Bu hataları alıyorum için geçerli olmalıdır ... sadece (kod 1)Hata: ödünç değer referans
error:
v
does not live long enough vec.push(&v);note: reference must be valid for the block suffix following statement 0 at 15:64...
note: ...but borrowed value is only valid for the block suffix following statement 2 at 19:35
(kod 1)
fn main() {
let mut vec: Vec<&Inf> = Vec::<&Inf>::new();//<-- It appears the error
let p: Foo1 = Foo1::created();
let v: Foo2 = Foo2::created();
vec.push(&v);
vec.push(&p);
olduğunu ancak vec
, p
ve v
öğelerini taşıdığımda değil.
(kod 2)
fn main() {
let p: Foo1 = Foo1::created();
let v: Foo2 = Foo2::created();
//It does not appear the error described above
let mut vec: Vec<&Inf> = Vec::<&Inf>::new(); //<-- It does not appear the error
vec.push(&v);
vec.push(&p);
..//
(beni açıklayabilirim birisi ise, bu davranış, normal olabilir.)
Bu yüzden hatayı görebilirsiniz oluşturulan benzer bir durumdur
Hata play.rust
Bu ownership hakkında okumak Hata yok play.rust
ve bu borrowing