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

Значения по умолчанию

Когда новая скалярная переменная создаётся без немедленного присваивания, контейнер всё равно содержит значение — значение по умолчанию. Конкретное значение по умолчанию зависит от типа переменной.

Программа ниже — не лучший пример использования Raku, но она иллюстрирует суть:

my $int;
say $int + 5;

В выводе содержится 5, что может быть ожидаемо, если предположить, что значение по умолчанию для $int равно 0. Однако программа также выводит предупреждение:

Use of uninitialized value $int of type Any in numeric context
  in block <unit> at t.raku line 2
5

Чтобы устранить эту неопределённость, можно либо явно присвоить значение:

my $int = 0;
say $int + 5; # 5

Либо объявить значение по умолчанию с помощью трейта is default:

my $int is default(0);
say $int + 5; # 5

Значение по умолчанию не ограничено нулём. Это может быть любое значение, которое вы считаете подходящим, например:

my $int is default(1);
say $int + 5; # 6

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

Тест — Ограничения типов   |   Проксирование вызова методов


💪 Или перейдите сразу к упражнениям этого раздела.