Go Benchmark Map vs Slice

A quick benchmark comparing performance of writing to a map versus appending to a slice. I also created two separate benchmarks to compare setting bool versus uint8 in the maps. It looks like the map with the uint8 values is the fastest option. Results Mon Dec 17 09:37:28 > go test -bench=. -benchtime=20s goos: darwin goarch: amd64 pkg: github.com/miketmoore/mapsvsslicesperf BenchmarkMapBool-8 100000000 208 ns/op BenchmarkMapUint8-8 200000000 180 ns/op BenchmarkSlice-8 20000000 1967 ns/op PASS ok github.

Go panics when writing to a nil map

Note: I originally posted this on Medium. I am learning Go and I ran into the following error when trying to convert a string to a map: package main const alphabetStr string = "abcdefghijklmnopqrstuvwxyz" func main() { var alphabetMap map[string]bool for _, r := range alphabetStr { c := string(r) alphabetMap[c] = true } } Running this program throws the following error: panic: assignment to entry in nil map I figured this had to do something with the fact that alphabetMap was not declared to be a certain size.