Курс Raku / Основи / Основи змінних і типів даних / Числа

Операції з числами

Без сумніву, ви вже знаєте деякі операції, які можна виконувати з числами в Raku. Варто зазначити, що символ операції називається оператором. Об’єкти, над якими ми виконуємо операції, називаються операндами.

Арифметика

Оператор | Операція + | Додавання - | Віднімання * | Множення / | Ділення

Оскільки Raku добре підтримує Unicode, деякі з цих операторів мають не-ASCII еквіваленти:

× | Множення ÷ | Ділення

Щоб змінити порядок виконання, використовуйте дужки:

say 3 * 4 + 5;   # 17
say 3 * (4 + 5); # 27

Модуль

Оператор модуля — це %, як і в багатьох інших мовах.

% | Модуль

Він повертає залишок від ділення двох чисел, тому 10 % 3 дорівнює 1. Зауважте, що -10 % 3 дорівнює 2, оскільки результат операції визначається як різниця між першим числом і округленим вниз результатом ділення, помноженим на друге число. Тому $a % $b еквівалентно $a - $b * floor($a / $b).

Кратність

Raku додає корисний оператор для перевірки, чи число ділиться на інше число.

%% | Кратність

Це інфіксний оператор, який потребує два операнди: 10 %% 3. Якщо перший операнд ділиться на другий операнд, результатом буде логічне значення True. В іншому випадку — False.

Цілі операції

Є спеціальні операції, які повертають цілі результати. Їхні оператори є словами замість символів.

div | Ціле ділення mod | Цілий модуль

Оператор div округлює результат вниз, тому 10 div 3 дорівнює 3, а -10 div 3 дорівнює -4.

І div, і mod очікують цілі операнди. Тому наступна програма не працюватиме, якщо розкоментувати рядки, позначені як Error:

say 10.3 % 3;     # OK
# say 10.3 mod 3; # Error

say 10.3 / 3.3;     # OK
# say 10.3 div 3.3; # Error

Степінь

Є два способи отримати результат x в степені y. По-перше, ви можете використовувати оператор **:

say 3 ** 4; # 81

По-друге, ви можете використовувати надрядкові цифри, наприклад:

say 3⁴; # 81

Можна використовувати більше однієї надрядкової цифри, щоб отримати значення степеня більше за 9. Наприклад:

say 2¹⁵; # 32768

Негативний степінь також не є проблемою:

say 2 ** (-2); ## 0.25
say 2⁻²; # 0.25

Зверніть увагу, що результат останніх двох виразів є числом типу Rat.

Операції з присвоєнням

Усі операції підтримують скорочений синтаксис, коли потрібно оновити змінну. Продемонструємо це на прикладі +.

Повна форма

$a = $a + $b;

еквівалентна:

$a += $b;

Навігація курсом

Числа з плаваючою комою   |   Ділення яблука


💪 Або перейдіть одразу до вправ цього розділу.