Курс языка программирования Raku / Основы / Позиционные типы данных / Упражнения / Светофор
Решение: Светофор
Идея решения заключается в «зацикливании индексации» массива с четырьмя состояниями светофора:
my @lights = <yellow red yellow green>;
В первые секунды количество секунд с начала можно напрямую использовать в качестве индекса в массиве. Когда оно превышает 3, можно зациклить его к началу массива с помощью оператора модуля %
. Длина массива — это @lights.elems
, но когда он используется как операнд %
, нет необходимости вызывать метод elems
, так как имя массива будет преобразовано в число, и это преобразование предназначено для возврата количества элементов.
Код
Вот решение:
my @lights = <yellow red yellow green>;
say @lights[51 % @lights];
say @lights[102 % @lights];
say @lights[305 % @lights];
🦋 Найдите программу в файле traffic-lights.raku.
Вывод
Запустите программу. Дополнительно попробуйте другие значения в программе.
$ raku exercises/positionals/traffic-lights.raku
green
yellow
red
Следующее упражнение
Навигация по курсу
← Типизированные переменные / Алломорфы | Ассоциативные типы данных →
Эта страница автоматически переведена с помощью ChatGPT 4o. Оригинальный текст на английском языке.
Переводы этой страницы: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська