Working with Go
Sorting Arrays and Maps
The sort
standard library is used for sorting slices, maps, and user define collections.
Sort Alphabetical
Use sort.Strings()
to sort alphabetically
abc := []string{"jkl", "ghi", "abc", "def"}
sort.Strings(abc)
fmt.Println("Sorted ABC:", abc)
Sort Numeric
Use sort.Ints()
to sort numerically
nums := []int{4, 2, 12, 5, 1, 3}
sort.Ints(nums)
fmt.Println("Sorted Nums:", nums)
Reverse Sort
Reverse sort, need to cast abc
as a StringSlice to reverse and sort
sort.Sort(sort.Reverse(sort.StringSlice(abc)))
fmt.Println("Reverse ABC:", abc)
Sort Maps
To sort a map by keys, pull an array of keys out of the map, sort the keys and then iterate over the sorted keys. A map by itself is not sortable.
hash := map[string]int{
"c": 3,
"a": 1,
"b": 2,
"e": 5,
"d": 4,
}
// Create array of kys
var keys []string
for k := range hash {
keys: append(keys, k)
}
// Sort keys
sort.Strings(keys)
// Use ordered keys to loop through hash
for i := range keys {
fmt.Printf("%s => %v\n", keys[i], hash[keys[i]])
}