Referances & Barrowing
Bu kısımda referanslara ve ödünç alma sistemlerine bakacağız.
Referanslar bir değere ownership
'ini almadan referans yapamızı sağlar. Yani değeri barrow
(ödünç almış) yapmış oluruz.
İki adet referansımız bulunmaktadır. Bunlar shared
yani paylaşılmış ve mutable
yani değiştirilebilir referenslar olmaktadır.
Shared referance
ifadeleri değeri okumamıza izin vermek ile beraber değiştirmemize izin vermemektedir. Bir değer karşı istediğimiz kadar istediğimiz zaman shared referance
oluşturabiliriz.
Diğer bir taraftan mutable referance
değerleri hem değeri okumaya hem de değiştirmeyi sağlamaktadır. Ancak shared referance
aksine o veri için aktif olan başka bir mutable referance
değerine sahip olamazsınız.
Hadi bu kavramlara bakalım:
fn main(){
let s = String::from("Merhaba");
change_string(&s)
}
fn change_string(bir_string: &String){
bir_string.push_str(" Dünya")
}
Bu şekilde yaptığımızda hata olarak Rust bize s
değerini mutable
yapmamızı söylemektedir.
fn main(){
let mut s = String::from("Merhaba");
change_string(&mut s);
println!("{}",s);
}
fn change_string(bir_string: &mut String){
bir_string.push_str(" Dünya")
}
Kodumuzu şimdi çalıştırdığımızda mutable referance
yapısını kullandığımızı ve sorunsuz kodumuzun çalıştığını görüntüleyebiliriz.
Merhaba Dünya
Bu konseptler Rust dilini Rust dili yapmaktadır ve büyük önem arz etmektedir.