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