golang技巧(依赖于源码阅读专栏-持续更新中)

检查结构体是否实现接口

var _ AInterface = &AType{}
用于在编译时检查某结构体是否实现了某接口。如果结构体实现了接口,那么编译通过。如果没有实现,那么编译不通过。

  • 例1
package main

type Reader interface {
    Read()
}

type Writer interface {
    Write()
}

type A struct {
}

func (a A) Read() {
}

var _ Reader = &A{}  // 编译通过,确保A实现了 Reader 接口
var _ Writer = &A{}   // 编译通不过,A没有实现 Writer 接口

func main() {

}
  • 例2
    gin.go

参考文章

参考文章1

你可能感兴趣的:(golang)