1.空结构体不占内存 2.它没有任何意义  一个使用场景: 一个 http 请求进来时会在 context 中携带一些额外的数据,您需要以 key-value 的形式放入到 context 中,那么这个空的结构体就可以作为全局唯一 key 你可能会 var key = "key" 作为这个 context 的 key,这有两个疑问,key 这个字符串会占用内存,key 是 string 这种基础类型。 我们希望这个 key 没有意义,它只会用来从 context 中拿 value,并没有其他用处; 如果你用空结构体 type customKey struct{}, customKey{} 作为 key, 首先它不占内存也没有意义,同时它又有类型保护。。