0Pricing
Learn Rust Coding · Ders

Başvurular ve Ödünç Alma Açıklaması

Sahipliği devralmadan kodunuzun birden çok bölümünün verilere güvenli biçimde erişmesini sağlayan başvuruları ve ödünç almayı öğrenin.

Başvurular ve Ödünç Alma Açıklaması, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 3 dersten oluşur.

Başvurular Nedir?

Rust'ta değişkenler verilerinin sahibidir. Peki kodunuzun diğer bölümlerinin sahipliği almadan bu verilere bakmasına veya hatta verileri değiştirmesine izin vermeniz gerekirse ne yaparsınız?

İşte burada başvurular devreye girer! Başvuru, bir değere işaret eden işaretçi gibidir; ancak Rust derleyicisi tarafından uygulanan katı kurallara tabidir.

Bunu, öğenin kendisine sahip olmak yerine bir şeye pencereden bakmak gibi düşünebilirsiniz.

İlk Başvurunuz

& işleciyle bir başvuru oluştururuz. Bu, bir değere sahip olmayan bir işaretçi oluşturur. Şimdi bunu uygulamada görelim:

fn print_length(s: &String) {
  println!("The length is: {}", s.len());
}

fn main() {
  let message = String::from("Hello, CoddyKit!");
  print_length(&message); // Pass a reference
  println!("Original message still here: {}", message);
}

Ödünç Almayı Anlamak

Bir değere başvuru oluşturduğunuzda, o değeri ödünç almış olursunuz. Değerin sahibi hâlâ ona sahiptir; ancak siz geçici erişim elde edersiniz.

  • Vermeden ödünç verme: Ödünç alınan verileri kullanabilirsiniz.
  • Sahiplik aktarımı yok: Verilerin sahibi hâlâ özgün değişkendir ve değişken kapsam dışına çıktığında verileri bırakır.
  • Önce güvenlik: Rust'ın ödünç alma kuralları veri yarışları gibi yaygın programlama hatalarını önler.

Değişmez Ödünçler: Salt Okunur Erişim

Rust'ta başvurular varsayılan olarak değişmezdir. Bu, işaret ettikleri verileri okuyabileceğiniz ancak değiştiremeyeceğiniz anlamına gelir.

Bu, temel bir güvenlik özelliğidir! Kodunuzun birden fazla bölümü salt okunur erişime sahipse, bu bölümler birbirlerinin verilerine yanlışlıkla müdahale edemez.

Değişmez Ödünç Kullanımda

Burada calculate_sum fonksiyonu bir vektöre değişmez bir başvuru alır. Öğeleri okuyabilir; ancak bunları ekleyemez veya kaldıramaz.

fn calculate_sum(numbers: &Vec<i32>) -> i32 {
  let mut total = 0;
  for num in numbers {
    total += num;
  }
  total
}

fn main() {
  let my_numbers = vec![10, 20, 30, 40];
  let sum = calculate_sum(&my_numbers); // Immutable borrow
  println!("The sum is: {}", sum);
  println!("Original vector: {:?}", my_numbers);
}

Değişken Ödünçler: Verileri Değiştirme

Bazen ödünç aldığınız verileri değiştirmeniz gerekir. Bunun için &mut ile gösterilen bir değişken başvuru kullanırsınız.

Değişken başvurular önemli bir kuralla birlikte gelir: belirli bir veri parçasına aynı anda yalnızca bir değişken başvuru sahibi olabilirsiniz. Bu, veri yarışlarını önler ve güvenliği sağlar.

&mut ile Verileri Değiştirme

add_suffix fonksiyonu bir String'e değişken bir başvuru alır. Özgün String'i doğrudan değiştirebilir.

fn add_suffix(text: &mut String) {
  text.push_str(" (modified)");
}

fn main() {
  let mut my_string = String::from("Original text");
  add_suffix(&mut my_string); // Mutable borrow
  println!("Modified string: {}", my_string);
}

Ödünç Almanın Altın Kuralları

Rust derleyicisi, bellek güvenliğini garanti etmek için bu kuralları derleme zamanında uygular:

  • Bir veri parçasına aynı anda bir değişken başvuru sahibi olabilirsiniz.
  • VEYA aynı anda istediğiniz sayıda değişmez başvuru sahibi olabilirsiniz.
  • Etkin değişmez başvurular varken değişken bir başvuru sahibi olamazsınız.
  • Başvurular her zaman geçerli olmalıdır (işaret ettikleri veriden daha uzun süre yaşayamazlar).

Bu kurallar veri yarışlarını önler ve programlarınızın güvenli ve öngörülebilir olmasını sağlar.

Çakışan Ödünçler

Bu kod, aynı anda hem my_value için değişmez hem de değişken bir başvuru oluşturmaya çalışır; bu da Rust'ın ödünç alma kurallarını ihlal eder. Kod derlenmez.

Çalıştırmayı deneyerek derleyici hatasını görünüz!

fn main() {
  let mut my_value = 100;

  let r1 = &my_value; // Immutable reference
  let r2 = &mut my_value; // Mutable reference (problem here!)

  println!("r1: {}", r1);
  // println!("r2: {}", r2); // This line would also cause an error if uncommented
}

Anlayışınızı Denetleyiniz

Aşağıdaki Rust kod parçasını inceleyiniz:

fn process_data(data: &mut Vec<i32>) {
  data.push(4);
}

fn main() {
  let mut numbers = vec![1, 2, 3];
  let first_ref = &numbers[0]; // Line A
  process_data(&mut numbers); // Line B
  println!("First element: {}", first_ref); // Line C
}

Rust'ın ödünç alma kuralları nedeniyle hangi satır veya satırlar derleme zamanı hatasına neden olur?

Özet: Başvurular ve Ödünç Alma

Harika iş çıkardınız! Rust'ta başvuruların ve ödünç almanın temellerini öğrendiniz:

  • Başvurular (&) sahipliği almadan verilere erişmenizi sağlar.
  • Ödünç alma, bir başvuru oluşturup verilere erişim ödünç verme işlemidir.
  • Değişmez başvurular (&) salt okunur erişim sağlar.
  • Değişken başvurular (&mut) okuma/yazma erişimi sağlar.
  • Rust'ın katı ödünç alma kuralları (bir değişken VEYA birçok değişmez başvuru), veri yarışlarını önler ve derleme zamanında bellek güvenliğini sağlar.

Bu kavramlar güvenli ve verimli Rust kodu yazmak için kritik öneme sahiptir!

Sıkça Sorulan Sorular

“Başvurular ve Ödünç Alma Açıklaması” dersi ücretsiz mi?

Evet — “Başvurular ve Ödünç Alma Açıklaması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 3 dersten oluşur.

“Başvurular ve Ödünç Alma Açıklaması” dersinde ne öğreneceğim?

Sahipliği devralmadan kodunuzun birden çok bölümünün verilere güvenli biçimde erişmesini sağlayan başvuruları ve ödünç almayı öğrenin. Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.

“Başvurular ve Ödünç Alma Açıklaması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Rust'ın Sahiplik Modelini Anlama
  2. Başvurular ve Ödünç Alma Açıklaması
  3. Güvenli Başvurular için Ömürler
← Learn Rust Coding Sayfasına Dön