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