Aritmetik

fn interproduct(a: i32, b: i32, c: i32) -> i32 {
    return a * b + b * c + c * a;
}

fn main() {
    println!("sonuç: {}", interproduct(120, 100, 248));
}
This slide should take about 3 minutes.

İlk defa main dışında bir fonksiyon görüyoruz, ancak anlamı açık: üç tamsayı alır ve bir tamsayı döndürür. Fonksiyonlar daha sonra daha detaylı olarak ele alınacaktır.

Aritmetik işlemleri, diğer dillerinkine benzer öncelik sıralamasıyla çok benzerdir.

Peki, tamsayı taşması ne olacak? C ve C++'da işaretli tamsayıların taşması aslında tanımsızdır (undefined) ve çalışma zamanında bilinmeyen şeyler olabilir. Rust'ta ise bu tanımlıdır.

Bir hata ayıklama (debug) inşasında paniğe (kontrollü) neden olan ve bir sürüm (release) inşasında sarmalanan (wrap) bir tamsayı taşmasını görmek için i32'leri i16 olarak değiştirin. Taşma (overflow), doyum (saturating), elde (carrying) gibi işlemlerinin kontrolü için başka seçenekler de vardır. Bunlara metot sözdizimi ile erişilir, örneğin (a * b).saturating_add(b * c).saturating_add(c * a).

Aslında derleyici sabit (constant) ifadelerin (expression) taşmasını algılayacaktır, bu nedenle örnek ayrı bir fonksiyon gerektirir.