Курс языка программирования 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. Оригинальный текст на английском языке.

Переводы этой страницы: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська