Курс по 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;

Навигация в курса

Числа с плаваща запетая   |   Споделяне на ябълка


💪 Или преминете направо към упражненията в този раздел.