我是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也没有。