Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Скалярные контейнеры / Exercises / Типизированный или нетипизированный
Решение: Типизированный или нетипизированный
Вот одно из возможных решений задачи.
Код
my $untyped;
my Int $typed;
dd $untyped;
dd $typed;
$untyped = 42;
$typed = 42;
dd $untyped;
dd $typed;🦋 Исходный код можно найти в файле reuse-the-container.raku.
Вывод
$untyped = Any
Int $typed = Int
$untyped = 42
Int $typed = 42Комментарии
ddописывает два контейнера по-разному. Для нетипизированного выводится просто$untyped, тогда как для типизированного добавляется префикс с объявленным типом:Int $typed. Этот префикс и есть то отличие, которое вносит объявление типа.Пустые значения тоже различаются. Нетипизированный контейнер начинает с базового неопределённого значения
Any, тогда как типизированный контейнер начинает с неопределённого значения своего типа,Int.После присваивания
42обоим контейнерам значения выглядят одинаково, но$typedпо-прежнему несёт свой тип и отклонит нецелочисленное значение — в отличие от$untyped, который принимает что угодно.
Навигация по курсу
← Типизированный или нетипизированный | Упорядоченные контейнеры →