今天再 Reddit 上看到了一个帖子,代码如下
import ( "image" "image/draw" ) var _ Node = &BasicNode{}
最后那句 var _ Node = &BasicNode{}
看起来一点作用都没有,生成的实例变量都扔掉了?
实际上,这是巧妙的利用了 Go 语言的特性,再编译期就检查一个结构是否继承或者继承了另一个接口。 如果 Node
结构没有实现 BasicNode
结构,那么就会报错。
不信的话,大家自己动手试一试
目前尚无回复