实现chan struct{}不占用内存空间,实现传递信号的通道

题目来源:BIGO

答案:

  1. // 空结构体的宽度是0,占用了0字节的内存空间。
  2. // 所以空结构体组成的组合数据类型也不会占用内存空间。
  3. channel := make(chan struct{})
  4. go func() {
  5. // do something
  6. channel <- struct{}{}
  7. }()
  8. fmt.Println(<-channel)