这是Go类型断言的一种特殊形式吗?

时间:2017-11-02 18:59:07

标签: go syntax

我是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 specificationsection on type assertions中查找哪些内容,似乎是语义上的,似乎没有涵盖这种情况,section on interface types也没有。

1 个答案:

答案 0 :(得分:4)

它是Type Conversion,与类型断言略有不同。