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); }
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 }