İçeriğe geç
Rust Derleyici HatalarıHata
E0502

E0502 — Değiştirilebilir Olarak Ödünç Alınamıyor Çünkü Değiştirilemez Olarak da Ödünç Alınmış

Etkin bir değiştirilemez ödünç alma (immutable borrow) varken bir değer değiştirilebilir (mutable) olarak ödünç alınamaz.

rustcargo

Bu hatanın nedenleri

Rust, aynı veriye aynı anda hem değiştirilebilir hem de değiştirilemez bir referans bulunmasını engeller. Değiştirilebilir bir ödünç alma yapmaya çalıştığınızda değiştirilemez ödünç alma hâlâ kullanımdadır.

Nasıl düzeltilir

Kodu, değiştirilemez ödünç alma değiştirilebilir ödünç alma başlamadan önce sona erecek şekilde yeniden yapılandırın. Bağımsız kopyalara ihtiyacınız varsa veriyi klonlayın. Değiştirilemez ödünç almanın kapsamını sınırlamak için bir blok kullanın.

Örnek

let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);
Resmi Belgeler

İlgili Hata Kodları