管理機器人出廠設定。
機器人從產線上下來時,還沒有名字。
第一次啟動機器人時,會隨機產生一個名字,格式是兩個大寫字母後面接著三個數字,例如 RX837 或 BC811。
偶爾我們需要把機器人重設回出廠設定,這表示它的名字會被清除。 下一次你詢問時,這台機器人會以一個新的隨機名字回應。
名字必須是隨機的:不能遵循可預測的順序。 使用隨機名字意味著有名稱碰撞的風險。 你的解法必須確保每一台現有的機器人都擁有唯一的名字。
機器人的名稱有可能會用完。當所有可能的機器人名稱都已經被分配完之後,就應該回傳錯誤。
當你讓go test通過之後,你會發現在測試套件裡有一個名為TestCollisions的測試,它預設會被跳過,因為執行起來可能需要很久。
這個測試會不斷建立新的機器人,直到再也沒有新名稱可以分配給機器人為止。
想讓這個測試執行,請移除這一行:
t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")
想讓這個測試通過,你必須確保機器人的名稱以前沒有被使用過,並且名稱能夠有效率地分配。