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