微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[golang]struct {}

有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:
            fmt.Println("worker",i,"quitting")
            quit = nil
        }
    }
}
  1. 两个structt{}{}地址相等
func main() {
    a := struct{}{}
    b := struct{}{}

    fmt.Printf("%p %p\n",&a,&b)
}
 0x1156c08 0x1156c08

原文地址:https://www.jb51.cc/go/187114.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐