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"}
fmt.Println("Sorted ABC:", abc)

Sort Numeric

Use sort.Ints() to sort numerically

nums := []int{4, 2, 12, 5, 1, 3}
fmt.Println("Sorted Nums:", nums)

Reverse Sort

Reverse sort, need to cast abc as a StringSlice to reverse and sort

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

// Use ordered keys to loop through hash
for i := range keys {
    fmt.Printf("%s => %v\n", keys[i], hash[keys[i]])

Hi, I’m Marcus Kazmierczak

Profile Photo I'm an engineer trying to do my small part to make the web a little better. I believe open source can help empower people, and grow our collective knowledge; moving the world forward. I hope this site is a small contribution to that collective.