判断Golang中接口是否实现
- 使用声明变量的语法实现
使用声明变量的语法实现
var _ 接口 = (*实现接口的结构)(nil)
package mainimport "fmt"type A interface {
Hi()
}type a struct {
}type b struct {
}func (i a) Hi() {
fmt.Println("Hi A.")
}var (
_ A = (*a)(nil)
_ A = (*b)(nil)
)func main() {}
上述代码在编译
go build
时会报以下错误:# command-line-arguments
./b.go:21:2: cannot use (*b)(nil) (type *b) as type A in assignment:
*b does not implement A (missing Hi method)
【判断Golang中接口是否实现】此方法可以在编译时检查出相关异常
推荐阅读
- 【golang】leetcode中级-字母异位词分组&无重复字符的最长子串
- 彻底理解Golang Map
- kratos线上开源年会它来啦~
- 深入浅出 Golang 资源嵌入方案(go-bindata篇)
- 深入浅出 Golang 资源嵌入方案(前篇)
- golang 经典案例总结
- Go实战 | 基于有向无环图的并发执行流的实现
- Golang 数组和切片
- Go JSON编码与解码()
- golang map基础知识