[golang]struct {}

时间:2025-02-23 08:00:29

有c/c++学习经历的会发现go的struct语法和c/c++很类型,但是golang的struct{}很有意思。

  1. 做set,map[string]struct{}
    由于struct{}是空,不关心内容,这样map便改造为set

  2. chan struct{}
    可以做退出

func worker(i int, ch chan Work, quit chan struct{}) {
    for {
        select {
        case w := <-ch:
            // do something
        case <-quit:
            ("worker", i, "quitting")
            quit = nil
        }
    }
}
  1. 两个structt{}{}地址相等
func main() {
    a := struct{}{}
    b := struct{}{}

    ("%p %p\n", &a, &b)
}

0x1156c08 0x1156c08