Арифметика
Speaker Notes
This slide should take about 3 minutes.
Це перший раз, коли ми бачимо функцію, відмінну від main
, але її значення повинно бути зрозумілим: вона отримує три цілих числа і повертає ціле число. Функції буде розглянуто більш детально пізніше.
Арифметика дуже схожа на інші мови, зі схожими пріоритетами.
Як бути з переповненням цілих чисел? У мовах C та C++ переповнення цілих чисел зі знаком фактично не визначено, і може робити невідомі речі під час виконання. У Rust воно визначене.
Замініть i32
на i16
, щоб побачити цілочисельне переповнення, яке панікує (перевіряється) у налагоджувальній збірці і загортається у релізній збірці. Існують і інші варіанти, такі як переповнення, перенасичення і перенесення. Доступ до них здійснюється за допомогою синтаксису методу, наприклад, (a * b).saturating_add(b * c).saturating_add(c * a)
.
Насправді, компілятор виявить переповнення константних виразів, тому приклад вимагає окремої функції.