Курс языка программирования 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Навигация по курсу
← Тест — Ограничения типов | Проксирование вызова методов →
💪 Или перейдите сразу к упражнениям этого
раздела.