Mapa en orden de bucle de rango

Estoy buscando una forma definitiva de abarcar unGo map en orden.

Especificaciones de Golang establece lo siguiente:

El orden de iteración sobre los mapas no se especifica y no se garantiza que sea el mismo de una iteración a la siguiente. Si las entradas del mapa que aún no se han alcanzado se eliminan durante la iteración, no se generarán los valores de iteración correspondientes. Si las entradas del mapa se crean durante la iteración, esa entrada se puede generar durante la iteración o se puede omitir. La elección puede variar para cada entrada creada y de una iteración a la siguiente. Si el mapa es nulo, el número de iteraciones es 0.

Todo lo que he encontrado aquí en StackOverflow y Google son (En mi humilde opinión) soluciones alternativas que no me gustan.

¿Hay alguna forma sólida de recorrer un mapa y recuperar elementos en el orden en que se insertaron?

Las soluciones que he encontrado son:

Realice un seguimiento de las claves y los valores en dos segmentos separados: que suena como "No usar un mapa", perdiendo todas las ventajas de usar mapas.

Use un mapa pero realice un seguimiento de las claves en un segmento diferente: esto significa duplicación de datos que podría conducir a una desalineación de datos y, finalmente, puede traer muchos errores y depuración dolorosa.

¿Que sugieres?

Edite en respuesta a la posible bandera duplicada.

Hay una ligera diferencia entre mi pregunta y la proporcionada (esta pregunta, pero tambiénéste), ambas preguntas solicitaron recorrer el mapa siguiendo el orden lexicográfico de las claves; Yo, en cambio, he preguntado específicamente:

¿Hay alguna forma sólida de recorrer un mapa yrecuperar elementos en el orden en que se insertaron?

que no es lexicográfico y por lo tanto diferente de@gramme.ninja pregunta:

¿Cómo puedo hacer que las claves estén en orden / ordenar el mapa para que las claves estén en orden y los valores correspondan?

Respuestas a la pregunta(1)

Su respuesta a la pregunta