go channel将空结构作为输入。这个输入可以是什么?

时间:2014-08-28 06:11:18

标签: go

a:= make(chan struct {})

这样,go channel将空结构作为输入。这个输入可以是什么吗?

感谢。

2 个答案:

答案 0 :(得分:5)

否:它可以是一个空结构(struct{}{}),而不是“任何东西”

要成为“任何东西”,您需要interface{}

正如我在“Go Golang : anonymous struct and empty struct”中解释的那样,空结构对于传递大小为...的对象很有用!这是表明已经发生事情的完美信号的好方法。

答案 1 :(得分:0)

struct{}非常类似于其他语言的单位类型;它只有一个没有信息的值。从这样的通道获得的值不包含任何信息,但是当某些事件发生时,这样的通道可用于发信号。从该频道接收的goroutine会在发送内容时唤醒。