Goのmapはboolとstruct{}でメモリ効率の差は小さい
mapやchanなどで、空の構造体を扱うときがある。
var ( m map[string]struct{} c chan struct{})struct{}のサイズは0なので、確かにメモリ効率はboolと比べても良くなるが、Russの発言1によると、もともとmapのバケットを管理するための値も持っているので、64bit環境でも数%の節約にしかならないらしい。
それよりも、boolは2値を持つので、値の意味を考えなくてもよいところが重要かなと思う。