トラック
/
Go
Go
/
演習
/
ロボットの名前
ロボットの名前

ロボットの名前

中級

説明

ロボットの工場出荷時の設定を管理します。

ロボットが工場のラインから出てきたとき、名前はまだありません。

ロボットの電源を初めて入れると、大文字2文字のあとに3桁の数字が続く形式のランダムな名前が生成されます。たとえばRX837やBC811のような名前です。

ときどき、ロボットを工場出荷時の設定にリセットする必要があります。これは、その名前が消去されることを意味します。 次に名前を尋ねると、そのロボットは新しいランダムな名前で応答します。

名前はランダムでなければなりません。予測できる並びになってはいけません。 ランダムな名前を使うということは、名前が重複するリスクを伴います。 解答では、存在するすべてのロボットが一意の名前を持つようにする必要があります。

実装

ロボットの名前が足りなくなることがあります。考えられる名前をすべて割り当ててしまったら、エラーを返す必要があります。

ボーナステスト

go testが通るようになると、テストスイートの中にTestCollisionsというテストがあることに気づくでしょう。このテストは、実行に長い時間がかかることがあるため、デフォルトではスキップされます。 このテストは、新しい名前を割り当てられなくなるまで、新しいロボットを作り続けます。

このテストを実行するには、次の行を削除してください。

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

このテストに通るには、あるロボットの名前がそれまでに使われていないこと、そして名前を効率よく割り当てられることを確実にする必要があります。


出典

gSchoolでのPaul Blackwellとのデバッグセッション。
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Go Exercism

ロボットの名前を始める準備はできましたか?

Exercismに登録すれば、34個のコンセプト165個の演習、そして本物の人間によるメンタリングとともに、Goを学んでマスターできます。すべて無料です。