Fonksiyonlar

fn gcd(a: u32, b: u32) -> u32 {
    if b > 0 {
        gcd(b, a % b)
    } else {
        a
    }
}

fn main() {
    println!("gcd: {}", gcd(143, 52));
}
This slide should take about 3 minutes.
  • Bildirim (declaration) parametrelerinin ardından bir tür (bazı programlama dillerinin tersi) ve ardından bir dönüş türü gelir.
  • Bir fonksiyon gövdesindeki (veya herhangi bir bloktaki) son ifade (expression), geri dönüş değeri (return value) olur. İfadenin sonundaki ; işaretini silmeniz yeterlidir. return anahtar kelimesi erken geri dönüş (early return) için kullanılabilir, ancak "yalın (bare) değer" formu bir fonksiyonun sonunda tercih edilen yaklaşımdır (idiomatic) (returnkullanmak için gcd'yi yeniden düzenleyin - refactor).
  • Bazı fonksiyonların dönüş değeri (return value) yoktur ve 'birim türü (unit type)', () döndürürler. Eğer dönüş türü yazılmazsa, derleyici birim türünü çıkarım (infer) yapacaktır.
  • Yüklenme (overloading) desteklenmez -- her fonksiyonun tek bir uygulaması (implementation) vardır.
    • Her zaman sabit sayıda parametre alır. Varsayılan argümanlar (default arguments) desteklenmez. Makrolar değişken sayıda argüman alan fonksiyonları (variadic functions) desteklemek için kullanılabilir.
    • Her zaman tek bir parametre türü kümesini alır. Bu türler, daha sonra ele alınacak olan jenerik olabilir.