认识Go语言空结构体
空结构体是Go语言中一个特殊的数据类型,它没有任何成员。你可以使用它来表示没有任何数据的值。空结构体的声明如下:
struct {}
空结构体在多种场合有重要的应用,例如:
- 作为channel的发送和接收操作的信号。
- 作为map的key,当你需要保存一组唯一的值时。
- 作为一个只是用来执行某些初始化操作或者表示“无”的空接口值。
下面是一个使用空结构体作为channel信号的例子:
package main
import (
"fmt"
"time"
)
func main() {
done := make(chan struct{})
go func() {
time.Sleep(2 * time.Second)
fmt.Println("Done sleeping")
done <- struct{}{} // 发送信号
}()
<-done // 等待信号
fmt.Println("Exiting now")
}
在这个例子中,struct{}
类型的空结构体用作一个信号,表示goroutine完成了其工作。
评论已关闭