Карта в цикле диапазона заказа

Я ищу точный способ измеренияGo map с целью.

Golang spec заявляет следующее:

Порядок итераций для карт не указан и не гарантируется, что он будет одинаковым для каждой итерации. Если записи карты, которые еще не были достигнуты, будут удалены во время итерации, соответствующие значения итерации не будут созданы. Если записи карты создаются во время итерации, эта запись может быть создана во время итерации или может быть пропущена. Выбор может варьироваться для каждой созданной записи и от одной итерации к следующей. Если карта равна нулю, количество итераций равно 0.

Все, что я нашел здесь на StackOverflow и Googling (по моему мнению) обходные пути, которые мне не нравятся.

Есть ли надежный способ перебрать карту и извлечь элементы в том порядке, в котором они были вставлены?

Решения, которые я нашел:

Отслеживайте ключи и значения в двух отдельных срезах: звучит как «Не используйте карту», ​​теряя все преимущества использования карт.

Используйте карту, но отслеживайте ключи в другом срезе: это означает дублирование данных, которое может привести к смещению данных и в конечном итоге может привести к множеству ошибок и болезненной отладке.

Что ты предлагаешь?

Отредактируйте в ответ на возможный дубликат флага.

Есть небольшая разница между моим вопросом и предоставленным (этот вопрос, но такжеэтот), оба вопроса заданы для циклического прохождения карты в соответствии с лексикографическим порядком клавиш; Я вместо этого специально спросил:

Есть ли надежный способ перебрать карту иполучить элементы в том порядке, в котором они были вставлены?

который не является лексикографическим и поэтому отличается от@gramme.ninja вопрос:

Как получить ключи в порядке / отсортировать карту, чтобы ключи были в порядке и значения соответствовали?

Ответы на вопрос(1)

Ваш ответ на вопрос