加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[golang]struct {}

发布时间:2020-12-16 19:18:27 所属栏目:大数据 来源:网络整理
导读:有c/c++学习经历的会发现go的struct语法和c/c++很类型,但是golang的struct{}很有意思。 做set,map[string]struct{} 由于struct{}是空,不关心内容,这样map便改造为set chan struct{} 可以做退出 func worker(i int ,ch chan Work,quit chan 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 %pn",&a,&b)
}
 0x1156c08 0x1156c08

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读