The "Map types" section of the go language specification describes the interface and general usage of map types and the "Go maps in action" post on The Go Blog casually mentions hash tables and "fast lookups, adds, and deletes".
The current runtime/hashmap.go
source code describes its implementation as a hashtable (which are typically amortized O(1)
); however, I don't see any guarantee of performance characteristics (such as Big O performance) in the language specification or other materials.
Does the go language make any performance guarantees (e.g. constant-time insertion/lookup/deletion?) for map types or only interface guarantees? (Compare to the Java language where interfaces and implementations are clearly separate.)
See Question&Answers more detail:os