Özet - Fonksiyonlar
- Rust kursu
- Başlangıç
- Ders 35/115
- 5 dk
Parametre, dönüş ve ifadeleri birleştirerek hesap fonksiyonları yazarsın.
Fonksiyonlar özeti
fn ad(param: Tür) -> Dönüş: parametre türleri zorunludur, dönüş değeri son ifadedir (noktalı virgülsüz), erken çıkış için return kullanılır. if, match ve bloklar değer üreten ifadelerdir. Birden çok değer tuple ile döner. Adlar snake_case yazılır.
fn istatistik(s: &[i32]) -> (i32, f64) {
let toplam: i32 = s.iter().sum();
(toplam, toplam as f64 / s.len() as f64)
}Fonksiyon değeri olarak fonksiyon
Fonksiyonlar değer gibi bir değişkene atanabilir ya da başka fonksiyona verilebilir; türleri fn(i32) -> i32 biçimindedir:
fn ikiye(n: i32) -> i32 { n * 2 }
fn uygula(f: fn(i32) -> i32, x: i32) -> i32 { f(x) }
println!("{}", uygula(ikiye, 21)); // 42Closure'lar (anonim fonksiyonlar) ileride bu fikri daha da güçlendirecek.
Uygulama İstatistik
Yukarıdaki istatistik(s: &[i32]) -> (i32, f64) fonksiyonunu yaz. let (t, o) = istatistik(&[2, 4, 9]); ile parçala ve println!("{t} {o}"); yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn istatistik(s: &[i32]) -> (i32, f64) {
let toplam: i32 = s.iter().sum();
(toplam, toplam as f64 / s.len() as f64)
}
fn main() {
let (t, o) = istatistik(&[2, 4, 9]);
println!("{t} {o}");
}Beklenen çıktı
15 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>istatistik(&[2, 4, 9])</code> ne döndürür?
- (15, 5.0) Doğru cevap
- (15, 5)
- (5.0, 15)
- 15
Açıklama: Toplam 15 (i32), ortalama 15 / 3 = 5.0 (f64); tuple sırası imzadaki gibidir.
2 Fonksiyon türü
fn uygula(f: ____, x: i32) -> i32 {
f(x)
}
fn uygula(f: fn(i32) -> i32, x: i32) -> i32 {
f(x)
}
Açıklama: fn(i32) -> i32 bir i32 alıp i32 döndüren fonksiyon türüdür.
3 Grubun özeti
| Kavram | Anlamı |
|---|---|
fn |
Tanım |
-> T |
Dönüş türü |
Son ifade |
Dönüş değeri |
return |
Erken çıkış |