Треки
/
Go
Go
/
Вправи
/
Імʼя робота
Імʼя робота

Імʼя робота

Середня

Вказівки

Керуйте фабричними налаштуваннями робота.

Коли робот сходить з конвеєра фабрики, у нього немає імені.

Коли ми вперше вмикаємо робота, генерується випадкове імʼя у форматі двох великих літер, за якими йдуть три цифри, наприклад RX837 або BC811.

Час від часу нам потрібно скинути робота до фабричних налаштувань, а це означає, що його імʼя стирається. Наступного разу, коли ми запитаємо, робот відповість новим випадковим іменем.

Імена мають бути випадковими: вони не повинні йти у передбачуваній послідовності. Використання випадкових імен означає ризик збігів. Ваше рішення має гарантувати, що кожен наявний робот має унікальне імʼя.

Реалізація

Імена роботів можуть закінчитися. Коли всі можливі імена роботів уже розподілено, потрібно повернути помилку.

Бонусний тест

Коли go test почне проходити, ми побачимо, що в наборі тестів є тест із назвою TestCollisions, який типово пропущено, бо він може виконуватися довго. Цей тест створює нових роботів, доки не залишиться нових імен, які можна присвоїти роботу.

Щоб тест запустився, видаліть цей рядок:

t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")

Щоб цей тест пройшов, потрібно подбати про те, щоб імʼя робота раніше не використовувалося, і про те, щоб імена розподілялися ефективно.


Джерело

Сеанс налагодження з Paul Blackwell у gSchool.
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Імʼя робота?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.