Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax 这个带下划线、内联接口和赋值的变量声明是什么?_Syntax_Go - Fatal编程技术网

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

Syntax 这个带下划线、内联接口和赋值的变量声明是什么?,syntax,go,Syntax,Go,这段Go代码的作用是什么 var _ interface { add(string) error } = &watcher{} 我相信&watcher{}返回两个东西,第一个被丢弃,第二个被分配给。。。接口?我在Github上找到了代码。此构造将声明一个变量,其名称的类型由类型文字给出;本例中的接口定义。下面是初始化表达式中的内容—在本例中是指向复合文字的指针 代码段的总体功能是静态地确保*观察者满足所述接口,因为\uu变量不会以任何方式具体化,并且只能观察到初始值设定项的任何

这段Go代码的作用是什么

var _ interface {
    add(string) error
} = &watcher{}

我相信
&watcher{}
返回两个东西,第一个被丢弃,第二个被分配给。。。接口?我在Github上找到了代码。

此构造将声明一个变量,其名称的类型由类型文字给出;本例中的接口定义。下面是初始化表达式中的内容—在本例中是指向复合文字的指针

代码段的总体功能是静态地确保
*观察者
满足所述接口,因为
\uu
变量不会以任何方式具体化,并且只能观察到初始值设定项的任何可能副作用。静态(如本例)或动态(如调用在运行时分配给某些全局变量、注册处理程序等的函数)

它看起来更像是静态“结构类型”检查-例如,如果尝试分配不兼容的类型,它将无法编译(早期失败、快速失败)。我不相信有任何“解包”发生。(但我不使用Go)看到了吗