有c/c++学习经历的会发现go的struct语法和c/c++很类型,但是golang的struct{}很有意思。
做set,map[string]struct{}
由于struct{}是空,不关心内容,这样map便改造为setchan struct{}
可以做退出
func worker(i int, ch chan Work, quit chan struct{}) {
for {
select {
case w := <-ch:
// do something
case <-quit:
fmt.Println("worker", i, "quitting")
quit = nil
}
}
}
- 两个structt{}{}地址相等
func main() {
a := struct{}{}
b := struct{}{}
fmt.Printf("%p %p\n", &a, &b)
}
0x1156c08 0x1156c08
本文介绍了Go语言中Struct的独特用途,包括如何利用Struct将Map转换为Set,以及使用Struct进行通道退出信号的传递。此外,还探讨了两个空Struct变量地址相等的现象。
1278

被折叠的 条评论
为什么被折叠?



