Курс языка программирования Raku / Продвинутый уровень / Подпрограммы / Сигнатуры / Exercises / Необязательная степень

Решение: Необязательная степень

Вот возможное решение задачи.

Код

sub power($base, $exp?) {
    $base ** ($exp // 2)
}

say power(5);
say power(5, 3);

🦋 Исходный код можно найти в файле optional-exponent.raku.

Вывод

25
125

Комментарии

  1. Символ ? после $exp делает его необязательным, поэтому power можно вызывать только с основанием.

  2. Когда $exp опущен, он не определён, и // подставляет запасное значение 2, поэтому power(5) возводит основание в квадрат и даёт 25. Если показатель степени передан, как в power(5, 3), используется переданное значение, что даёт 125.

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

Необязательная степень   |   Поглощающие именованные аргументы