Kodkitabi

Ownership ve Borrowing

Rust'ta verinin sahibi kimdir? Referanslar ve ödünç alma mantığı.

Rust'ın bellek yönetiminin kalbinde Ownership (Sahiplik) kuralları yatar. Her değerin bir "sahibi" vardır ve bir değerin aynı anda tek bir sahibi olabilir.

Değeri başka bir yere aktarmak yerine ona erişmek istediğimizde ise Borrowing (Ödünç Alma) kavramı devreye girer. Referanslar (&) sayesinde verinin sahipliğini almadan onu okuyabiliriz.

Sahiplik Kuralları ve Referanslar
fn main() {
    let s1 = String::from("Rust");
    
    // s1 sahipliği s2'ye geçer (Move). s1 artık kullanılamaz!
    let s2 = s1; 
    
    // s2'yi ödünç alıyoruz (Borrowing). Sahiplik hala s2'de.
    let len = calculate_length(&s2);
    
    println!("'{}' uzunluğu: {}", s2, len);
}

fn calculate_length(s: &String) -> usize {
    s.len()
}