Parametreler
- Rust kursu
- Başlangıç
- Ders 31/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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) -> 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ü
fn kup(n: ____) -> i64 {
n * n * n
}
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 |