Aritmetik

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

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 farklı platformlarda veya derleyicilerde farklı şeyler olabilir. Rust’ta bu tanımlanmıştı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.