It is common to use integer types as keys in maps due low memeory allocation leading to better performance. For example int8 occupies a single byte of memory. An empty struct in golang have a minimum size of zero bytes, but they may have a size greater than zero due to padding. The size of an empty struct in Go is implementation-dependent, and it is usually 1 byte or larger to ensure that each instance of a struct has a unique memory address.
package main
import (