Tür Çıkarımı

Rust, türü belirlemek için değişkenin nasıl kullanıldığına bakacak:

fn takes_u32(x: u32) {
    println!("u32: {x}");
}

fn takes_i8(y: i8) {
    println!("i8: {y}");
}

fn main() {
    let x = 10;
    let y = 20;

    takes_u32(x);
    takes_i8(y);
    // takes_u32(y);
}
This slide should take about 3 minutes.

Bu slayt, Rust derleyicisinin değişken bildirimleri ve kullanımları tarafından verilen kısıtlamalara dayanarak türleri nasıl çıkarım yaptığını gösterir.

Bu şekilde bildirilen değişkenlerin herhangi bir veriyi tutabilecek dinamik "herhangi bir tür" olmadığını vurgulamak çok önemlidir. Böyle bir bildirim tarafından oluşturulan makine kodu, bir türün açık (explicit) bildirimiyle aynıdır. Derleyici bizim için işi yapar ve daha kısa kod yazmamıza yardımcı olur.

Hiçbir şey bir tamsayı değişmezinin türünü kısıtlamadığında, Rust varsayılan olarak türü i32 yapar. Bu bazen hata mesajlarında "{integer}" olarak görünür. Benzer şekilde, ondalıklı sayı değişmezleri için varsayılan tür f64'tür.

fn main() {
    let x = 3.14;
    let y = 20;
    assert_eq!(x, y);
    // HATA: `{float} == {integer}` için gerçekleştirim-uyarlama (implementation) yok
}