这段 Go 代码片段是做什么的?
var _ interface {
add(string) error
} = &watcher{}
我相信&watcher{}
返回两件事,第一个被丢弃,第二个被分配给......一个接口?我在 Github 上的fswatch中找到了代码。
这段 Go 代码片段是做什么的?
var _ interface {
add(string) error
} = &watcher{}
我相信&watcher{}
返回两件事,第一个被丢弃,第二个被分配给......一个接口?我在 Github 上的fswatch中找到了代码。
此构造将声明一个具有空白标识符名称的变量,其类型由类型文字给出;在这种情况下是一个接口定义。接下来是初始化表达式——在这种情况下是一个指向复合文字的指针。
该片段的整体功能是静态地确保 a*watcher
满足所述接口,因为_
变量不会以任何方式实现,并且只能观察到初始化程序的任何可能的副作用。静态(如本例)或动态(例如调用在运行时分配给某些全局变量、注册处理程序等的函数)