这个带有下划线,内联接口和赋值的变量声明是什么?

har*_*arm 7 syntax go

这段Go代码有什么作用?

var _ interface {
    add(string) error
} = &watcher{}
Run Code Online (Sandbox Code Playgroud)

我相信&watcher{}返回两件事,第一件被丢弃,第二件被分配给......一个界面?我在Github的fswatch中找到了代码.

zzz*_*zzz 12

此构造将声明一个带有空标识符名称的变量,其类型由类型文字给出; 这种情况下的接口定义.接下来是初始化表达式 - 在这种情况下指向复合文字的指针.

片段的整体功能是静态地确保*watcher满足所述界面,因为_变量没有以任何方式实现,并且只能观察到初始化器的任何可能的副作用.静态(如本例中)或动态(例如调用在运行时分配给某些全局变量的函数,注册处理程序等)