Go Basics
Go Maps
Store values under keys: add, read, check, delete and loop in a fixed order.
What you'll learn
- Creating and updating
- The value, ok form
- Sorting the keys
stock
"apple"5"pear"5"plum"1Values found by key
A map stores values under keys, so you can find a value quickly by its key. It is Go's version of a dictionary or hash table.
Reading a missing key returns the zero value, so the second result, found, tells you whether the key exists. delete removes a key. A map has no fixed order, so the keys are collected and sorted before printing.
Key points
- A missing key reads as the zero value.
- value, found :=
m[key]tells you if it exists. - Map order is random: sort the keys.
Runnable Go example
main.go
package main
import (
"fmt"
"sort"
)
func main() {
stock := map[string]int{"apple": 3, "pear": 5}
stock["plum"] = 1
stock["apple"] += 2
fmt.Println(stock["apple"], len(stock))
count, found := stock["kiwi"]
fmt.Println(count, found)
delete(stock, "pear")
names := make([]string, 0, len(stock))
for name := range stock {
names = append(names, name)
}
sort.Strings(names) // map order is random, so sort the keys
for _, name := range names {
fmt.Println(name, stock[name])
}
}
5 3
0 false
apple 5
plum 1Practice
Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.
Finished this lesson?
Mark it as learned to track your progress.
Your progress is saved in this browser Sign in to keep it on every device.
Practice with a challenge
Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.
- Character Frequency Count how often each character appears. Easy
- First Unique Character Find the first character that appears only once. Easy