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

Go代码段有什么作用?


var _ interface {

    add(string) error

} = &watcher{}

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


largeQ
浏览 226回答 1
1回答

SMILET

该构造将声明一个变量,该变量的标识符名称为空,其类型由类型文字提供;在这种情况下为接口定义。接下来是初始化程序表达式-在这种情况下为复合文字的指针。代码段的总体功能是静态地确保*watcher满足所述接口,因为_不会以任何方式实现该变量,并且只能观察到初始化程序的任何可能的副作用。可以是静态的(在这种情况下)或动态的(例如,调用在运行时分配给某些全局变量的函数,注册处理程序等)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go