Я посмотрел Structs as keys in Golang mapsзначение Iterate Struct (карта ключа) в golang
Я понимаю итерации по картам в golang не имеет гарантированный заказ. Я следил за example in golang blog и пытался использовать struct
в качестве ключа карты.
Вот мой код
package main
func main() {
req := make(map[mapKey]string)
req[mapKey{1, "r"}] = "robpike"
req[mapKey{2, "gri"}] = "robert griesemer"
req[mapKey{3, "adg"}] = "andrew gerrand"
req[mapKey{4, "rsc"}] = "russ cox"
var keys []int
for k := range req {
keys = append(keys, k.Key)
}
for _, k := range keys {
fmt.Printf("short name : %s , long name : %s\n",req[k], req[k]) // How do I iterate here
}
sort.Ints(keys)
}
type mapKey struct {
Key int
Option string
}
То, что я хочу, чтобы результаты были в
short name : r , long name : rob pike
short name : gri , long name : robert griesemer
short name : adg , long name : andrew gerrand
short name : rsc , long name : russ cox
И я не знаю, как я могу получить значение структуры и ключ итерированным путем раздельной структуры данных.
О, я думаю, что нашел что-то подобное [golang map prints не работает] (http://stackoverflow.com/questions/12108215/golang-map-prints-out-of-order) –