Dans Go, quel est le moyen le plus simple d’obtenir les clés dans une carte sortingée par ordre alphabétique? C’est le moyen le plus court que je puisse faire:
package main import "container/vector" import "fmt" import "sort" func main() { m := map[ssortingng]ssortingng {"b":"15", "z":"123123", "x":"sdf", "a":"12"} var keys vector.SsortingngVector; for k,_ := range ( m ) { keys.Push(k) } sort.Sort( &keys ) fmt.Printf("%v\n", keys) }
Vous sortingez un tableau de chaînes en utilisant SsortingngVector. Pour minimiser les frais généraux, vous pouvez sortinger un tableau de chaînes.
package main import ( "fmt" "sort" ) func main() { m := map[ssortingng]ssortingng{"b": "15", "z": "123123", "x": "sdf", "a": "12"} mk := make([]ssortingng, len(m)) i := 0 for k, _ := range m { mk[i] = k i++ } sort.Ssortingngs(mk) fmt.Println(mk) }
Sortie:
[abxz]
Ce serait la méthode la plus élégante:
package main import ( "fmt" "sort" ) func main() { m := map[ssortingng]ssortingng{"b": "15", "z": "123123", "x": "sdf", "a": "12"} keys := make([]ssortingng, 0, len(m)) for key := range m { keys = append(keys, key) } sort.Ssortingngs(keys) fmt.Println(keys) }