【发布时间】:2017-11-02 18:59:06
【问题描述】:
我是一名 Go 程序员新手。
我在 Kubernetes 源代码中遇到过这个:
var (
_ = Queue(&FIFO{}) // FIFO is a Queue
)
Queue 之前声明如下:
type Queue interface { // etc.
FIFO 之前声明如下:
type FIFO struct { // etc.
那么我的第一个摘录是一种类型断言吗?它似乎不符合the Go Tour's lesson-let on the subject 描述的语法。
我当然可以相信这个块确保FIFO“是”Queue,但我想确切地了解这里发生了什么,而且我太新手了,不知道在哪里查看Go language specification(section on type assertions,这似乎是语义上的内容,似乎没有涵盖这种情况,section on interface types 也没有)。
【问题讨论】: