[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

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1&#160;Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...