CodeBlanks Logo Icon CodeBlanks

Parametreler

Fonksiyon parametreleri ve türlerini öğrenirsin.

Parametreler

Parametrelerin türü her zaman açıkça yazılır; derleyici fonksiyon imzalarında tür çıkarımı yapmaz. Bu, imzanın tek başına okunabilir bir sözleşme olmasını sağlar:

fn alan(en: f64, boy: f64) -> f64 {
    en * boy
}

fn tekrarla(metin: &str, kez: usize) {
    for _ in 0..kez {
        println!("{metin}");
    }
}

Argümanlar kopyalanır mı?

i32, f64, bool gibi küçük türler argüman olarak verildiğinde kopyalanır. String ve Vec gibi heap'teki türler ise taşınır (move): fonksiyon onların sahibi olur ve çağıran onları artık kullanamaz. Bunu önlemek için referans (&String, &str) geçirilir; ayrıntıları sahiplik dersinde göreceksin.

Uygulama Tekrarla

fn tekrarla(metin: &str, kez: usize) fonksiyonunu yaz; metni kez sayısı kadar aynı satırda boşlukla ayırarak yazdırsın (print! + sonda println!()). tekrarla("go", 3) çağır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn tekrarla(metin: &str, kez: usize) {
    for _ in 0..kez {
        print!("{metin} ");
    }
    println!();
}

fn main() {
    tekrarla("go", 3);
}

Beklenen çıktı

go go go

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>fn ikiye(n) -&gt; i32 { n * 2 }</code> neden derlenmez?

  • Parametre türü yazılmamış Doğru cevap
  • Dönüş türü yanlış
  • return yazılmamış
  • Derlenir

Açıklama: Fonksiyon parametreleri tür bildirimi ister: fn ikiye(n: i32) -> i32. return olmadan son ifade dönüş değeridir.

2 Parametre türü

Soru
fn kup(n: ____) -> i64 {
    n * n * n
}
Cevap
fn kup(n: i64) -> i64 {
    n * n * n
}

Açıklama: Parametre türü iki noktadan sonra yazılır ve zorunludur.

3 İmza ve anlamı

Kavram Anlamı
fn f(a: i32, b: i32) İki i32 parametre
fn f(s: &str) Ödünç metin
fn f(s: String) Sahipliği alır
fn f() -> f64 Parametresiz, f64 döndürür

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma